• 持续交付部署
    • 添加choerodon chart仓库
    • 创建数据库
    • 部署devops service
    • 部署gitlab service
    • 部署workflow service

    持续交付部署

    在此之前,应该准备好Mysql、Harbor、Gitlab、Minio,Chartmuseum这些组件的信息。按以下搭建顺序进行搭建,请不要随意调整搭建顺序。

    添加choerodon chart仓库

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

    创建数据库

    1. helm install c7n/mysql-client \
    2. --set env.MYSQL_HOST=c7n-mysql.c7n-system.svc \
    3. --set env.MYSQL_PORT=3306 \
    4. --set env.MYSQL_USER=root \
    5. --set env.MYSQL_PASS=password \
    6. --set env.SQL_SCRIPT="\
    7. CREATE USER IF NOT EXISTS 'choerodon'@'%' IDENTIFIED BY 'password';\
    8. CREATE DATABASE IF NOT EXISTS devops_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
    9. CREATE DATABASE IF NOT EXISTS gitlab_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
    10. CREATE DATABASE IF NOT EXISTS workflow_service DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\
    11. GRANT ALL PRIVILEGES ON devops_service.* TO choerodon@'%';\
    12. GRANT ALL PRIVILEGES ON gitlab_service.* TO choerodon@'%';\
    13. GRANT ALL PRIVILEGES ON workflow_service.* TO choerodon@'%';\
    14. FLUSH PRIVILEGES;" \
    15. --version 0.1.0 \
    16. --name create-c7ncd-db \
    17. --namespace c7n-system

    部署devops service

    • 部署服务
    1. helm install c7n/devops-service \
    2. --set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    3. --set preJob.preConfig.datasource.username=choerodon \
    4. --set preJob.preConfig.datasource.password=password \
    5. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/devops_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    6. --set preJob.preInitDB.datasource.username=choerodon \
    7. --set preJob.preInitDB.datasource.password=password \
    8. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/devops_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    9. --set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
    10. --set env.open.SPRING_DATASOURCE_PASSWORD=password \
    11. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
    12. --set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
    13. --set env.open.SPRING_REDIS_DATABASE=11 \
    14. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
    15. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
    16. --set env.open.SERVICES_HARBOR_BASEURL="https://registry.example.choerodon.io" \
    17. --set env.open.SERVICES_HARBOR_USERNAME=admin \
    18. --set env.open.SERVICES_HARBOR_PASSWORD="Harbor12345" \
    19. --set env.open.SERVICES_HARBOR_INSECURESKIPTLSVERIFY="true" \
    20. --set env.open.SERVICES_HELM_URL="http://chart.example.choerodon.io" \
    21. --set env.open.SERVICES_GITLAB_URL="http://gitlab.example.choerodon.io" \
    22. --set env.open.SERVICES_GITLAB_SSHURL="gitlab.example.choerodon.io:2289" \
    23. --set env.open.SERVICES_GITLAB_PASSWORD=password \
    24. --set env.open.SERVICES_GITLAB_PROJECTLIMIT=100 \
    25. --set env.open.SERVICES_GATEWAY_URL=http://api.example.choerodon.io \
    26. --set env.open.SECURITY_IGNORED="/ci\,/webhook\,/v2/api-docs\,/agent/**\,/ws/**\,/webhook/**" \
    27. --set env.open.AGENT_VERSION="0.17.0" \
    28. --set env.open.AGENT_REPOURL="https://openchart.choerodon.com.cn/choerodon/c7n/" \
    29. --set env.open.AGENT_SERVICEURL="ws://devops.example.choerodon.io/agent/" \
    30. --set env.open.TEMPLATE_VERSION="0.17.0" \
    31. --set env.open.TEMPLATE_URL="https://github.com/choerodon/choerodon-devops-templates.git" \
    32. --set env.open.AGENT_CERTMANAGERURL="https://openchart.choerodon.com.cn/choerodon/infra/" \
    33. --set ingress.enable=true \
    34. --set ingress.host=devops.example.choerodon.io \
    35. --set service.enable=true \
    36. --set persistence.enabled=true \
    37. --set persistence.existingClaim="chartmuseum-pvc" \
    38. --name devops-service \
    39. --version 0.17.2 \
    40. --namespace c7n-system

    参数名含义service.enable是否创建servicepreJob.preConfig.datasource{}初始化配置所需manager_service数据库信息preJob.preInitDB.datasource{}初始化数据库所需数据库信息env.open.SPRING_DATASOURCE_URL数据库链接地址env.open.SPRING_DATASOURCE_USERNAME数据库用户名env.open.SPRING_DATASOURCE_PASSWORD数据库密码env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址env.open.SERVICES_HARBOR_BASEURLharbor地址env.open.SERVICES_HARBOR_USERNAMEharbor用户名env.open.SERVICES_HARBOR_PASSWORDharbor密码env.open.SERVICES_HELM_URLchartmuseum地址env.open.SERVICES_SONARQUBE_URLsonarqube地址,若未部署请忽略env.open.SERVICES_GITLAB_URLgitlab地址env.open.SERVICES_GITLAB_PASSWORD通过choerodon平台创建的gitlab用户初始密码env.open.SERVICES_GITLAB_PROJECTLIMIT通过choerodon平台创建的gitlab可创建项目上限env.open.AGENT_VERSION与当前Devops Service相匹配的Agent版本,不需要修改env.open.AGENT_REPOURLAgent Chart包远程仓库,不需要修改env.open.AGENT_SERVICEURLAgent与Devops Service进行链接的webSocket地址,主机域名与ingress.host相同env.open.TEMPLATE_VERSION预定义微服务后端模板的版本env.open.TEMPLATE_URL微服务后端模板的地址persistence.enabled启用持久化存储persistence.existingClaim一定与chartmuseum挂载出来的目录相同service.enable启用serviceingress.enable启用域名ingress.host设置域名,这里不要加http前缀

    • 验证部署

      • 验证命令
    1. curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=devops-service -o jsonpath="{.items[0].status.podIP}"):8061/actuator/health | jq -r .status
    • 出现以下类似信息即为成功部署
    1. UP

    部署gitlab service

    • 部署服务

      • 如何获取GITLAB_PRIVATETOKEN请点击此处
    1. helm install c7n/gitlab-service \
    2. --set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    3. --set preJob.preConfig.datasource.username=choerodon \
    4. --set preJob.preConfig.datasource.password=password \
    5. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/gitlab_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    6. --set preJob.preInitDB.datasource.username=choerodon \
    7. --set preJob.preInitDB.datasource.password=password \
    8. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/gitlab_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    9. --set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
    10. --set env.open.SPRING_DATASOURCE_PASSWORD=password \
    11. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
    12. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
    13. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
    14. --set env.open.GITLAB_URL="http://gitlab.example.choerodon.io" \
    15. --set env.open.GITLAB_PRIVATETOKEN="GEuRhgb6kG9y3prFosSb" \
    16. --name gitlab-service \
    17. --version 0.17.0 \
    18. --namespace c7n-system

    参数名含义preJob.preConfig.datasource{}初始化配置所需manager_service数据库信息preJob.preInitDB.datasource{}初始化数据库所需数据库信息env.open.SPRING_DATASOURCE_URL数据库链接地址env.open.SPRING_DATASOURCE_USERNAME数据库用户名env.open.SPRING_DATASOURCE_PASSWORD数据库密码env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址env.open.GITLAB_URLgitlab地址env.open.GITLAB_PRIVATETOKENgitlab 具有api、read_use、sudo权限的用户token,如何获取请查阅

    • 验证部署

      • 验证命令
    1. curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=gitlab-service -o jsonpath="{.items[0].status.podIP}"):8071/actuator/health | jq -r .status
    • 出现以下类似信息即为成功部署
    1. UP

    部署workflow service

    • 部署服务
    1. helm install c7n/workflow-service \
    2. --set preJob.preConfig.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/manager_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    3. --set preJob.preConfig.datasource.username=choerodon \
    4. --set preJob.preConfig.datasource.password=password \
    5. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/workflow_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    6. --set preJob.preInitDB.datasource.username=choerodon \
    7. --set preJob.preInitDB.datasource.password=password \
    8. --set env.open.SPRING_DATASOURCE_URL="jdbc:mysql://c7n-mysql.c7n-system.svc:3306/workflow_service?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
    9. --set env.open.SPRING_DATASOURCE_USERNAME=choerodon \
    10. --set env.open.SPRING_DATASOURCE_PASSWORD=password \
    11. --set env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE="http://register-server.c7n-system:8000/eureka/" \
    12. --set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
    13. --set env.open.SPRING_REDIS_DATABASE=11 \
    14. --set env.open.SPRING_CLOUD_CONFIG_ENABLED=true \
    15. --set env.open.SPRING_CLOUD_CONFIG_URI="http://register-server.c7n-system:8000/" \
    16. --name workflow-service \
    17. --version 0.17.0 \
    18. --namespace c7n-system

    参数名含义service.enable是否创建servicepreJob.preConfig.datasource{}初始化配置所需manager_service数据库信息preJob.preInitDB.datasource{}初始化数据库所需数据库信息env.open.SPRING_DATASOURCE_URL数据库链接地址env.open.SPRING_DATASOURCE_USERNAME数据库用户名env.open.SPRING_DATASOURCE_PASSWORD数据库密码env.open.SPRING_CLOUD_CONFIG_ENABLED启用配置中心env.open.SPRING_CLOUD_CONFIG_URI配置中心地址env.open.EUREKA_CLIENT_SERVICEURL_DEFAULTZONE注册服务地址

    • 验证部署

      • 验证命令
    1. curl -s $(kubectl get po -n c7n-system -l choerodon.io/release=workflow-service -o jsonpath="{.items[0].status.podIP}"):8066/actuator/health | jq -r .status
    • 出现以下类似信息即为成功部署
    1. UP