• Gitlab部署

    预备知识

    如果你不知道Gitlab是做什么的,那么请参考下面链接(包括但不限于)进行学习:

    仓库设置

    添加choerodon chart仓库并同步

    helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
    helm repo update
    

    部署Gitlab

    部署数据库

    注意:本 PostgreSql 数据库搭建教程仅为快速体验Gitlab而编写,由于使用了NFS存储故并不能保证其稳定运行或数据不丢失,您可以参照 PostgreSql 官网进行搭建。
    helm install c7n/postgresql \
        --set persistence.enabled=true \
        --set persistence.storageClass=nfs-provisioner \
        --set image.tag=9.6.11 \
        --set postgresqlPassword=password \
        --set postgresqlDatabase=gitlabhq_production \
        --set initdbScripts.'init\.sql'='
            \\c gitlabhq_production;
            CREATE EXTENSION IF NOT EXISTS pg_trgm;' \
        --version 3.18.4 \
        --name gitlab-postgresql \
        --namespace c7n-system
    

    部署gitlab所需Redis

    helm install c7n/persistentvolumeclaim \
        --set accessModes={ReadWriteOnce} \
        --set requests.storage=256Mi \
        --set storageClassName=nfs-provisioner \
        --version 0.1.0 \
        --name gitlab-redis-pvc \
        --namespace c7n-system
    
    helm install c7n/redis \
        --set persistence.enabled=true \
        --set persistence.existingClaim=gitlab-redis-pvc \
        --set service.enabled=true \
        --version 0.2.0 \
        --name gitlab-redis \
        --namespace c7n-system
    

    创建gitlab所需PV和PVC

    helm install c7n/persistentvolumeclaim \
        --set accessModes={ReadWriteOnce} \
        --set requests.storage=2Gi \
        --set storageClassName=nfs-provisioner \
        --version 0.1.0 \
        --name gitlab-pvc \
        --namespace c7n-system
    

    部署gitlab

    helm install c7n/gitlab \
        --set persistence.enabled=true \
        --set persistence.existingClaim=gitlab-pvc \
        --set env.config.GITLAB_EXTERNAL_URL=http://gitlab.example.choerodon.io \
        --set env.config.GITLAB_TIMEZONE=Asia/Shanghai \
        --set env.config.CHOERODON_OMNIAUTH_ENABLED=false \
        --set env.config.GITLAB_DEFAULT_CAN_CREATE_GROUP=true \
        --set env.config.DB_ADAPTER=postgresql \
        --set env.config.DB_HOST=gitlab-postgresql-postgresql.c7n-system.svc \
        --set env.config.DB_PORT=5432 \
        --set env.config.DB_USERNAME=postgres \
        --set env.config.DB_PASSWORD=password \
        --set env.config.DB_DATABASE=gitlabhq_production \
        --set env.config.REDIS_HOST=gitlab-redis.c7n-system.svc \
        --set env.config.SMTP_ENABLE=false \
        --set env.config.SMTP_ADDRESS=smtp.mxhichina.com \
        --set env.config.SMTP_PORT=465 \
        --set env.config.SMTP_USER_NAME=git.sys@example.choerodon.io \
        --set env.config.SMTP_PASSWORD=password \
        --set env.config.SMTP_DOMAIN=smtp.mxhichina.com \
        --set env.config.SMTP_AUTHENTICATION=login \
        --set env.config.GITLAB_EMAIL_FROM=git.sys@example.choerodon.io \
        --set env.config.SMTP_ENABLE_STARTTLS_AUTO=true \
        --set env.config.SMTP_TLS=true \
        --set env.config.PROMETHEUS_ENABLE=false \
        --set env.config.NODE_EXPORTER_ENABLE=false \
        --set env.config.UNICORN_WORKERS=3 \
        --set env.config.UNICORN_TIMEOUT=60 \
        --set service.enabled=true \
        --set service.ssh.nodePort=32222 \
        --set ingress.enabled=true \
        --version 0.5.0 \
        --name gitlab \
        --namespace c7n-system
    

    验证部署

    配置Choerodon Oauth认证

    • 以下操作须将Choerodon搭建完成后再继续进行,若未搭建,请跳过。
    • 配置Choerodon的Oauth认证后Gitlab的root用户是无法再通过Gitlab自有的界面进行登录的了。
    如标题所描述,进行此步配置就是使用Choerodon的Oauth认证进行登陆Gitlab。这是Gitlab与Choerodon进行整合的必要操作。

    更新Gitlab配置

    helm upgrade gitlab c7n/gitlab \
        -f <(helm get values gitlab) \
        --set env.config.CHOERODON_OMNIAUTH_ENABLED=true \
        --set env.config.OMNIAUTH_AUTO_SIGN_IN_WITH_PROVIDER=oauth2_generic \
        --set env.config.OMNIAUTH_BLOCK_AUTO_CREATED_USERS=false \
        --set env.config.CHOERODON_API_URL=http://api.example.choerodon.io \
        --set env.config.CHOERODON_CLIENT_ID=gitlab \
        --set env.config.CHOERODON_CLIENT_SECRET=secret \
        --version 0.5.0 \
        --namespace c7n-system
    

    添加Gitlab Client

    添加管理员用户关联

    执行完添加管理员用户关联步骤前请不要去Gitlab界面进行登录操作

    验证更新