基础组件升级

升级 harbor

开始升级 Harbor 前请先将 Harbor的数据库 *registery* 备份
数据库表结构不能自动降级,因此不支持使用 `helm rollback` 命令回滚版本。

如果启用了 TLS 证书并且证书是 Chart 自动生成的,那么升级过程中会生成新证书并覆盖旧证书。可以按照下面的步骤配置旧证书:

  1. 找到以 -harbor-ingress 结尾的 secret,并导出保存为yaml 文件。

    1. kubectl get secret -n c7n-system
    2. kubectl get secret <secret-name-from-step-1> -o yaml > harbor-core-ingress.yaml
  2. 修改 harbor-core-ingress.yaml 中的 metadata.name 以重命名 secret

  3. 创建新的 secret

    1. kubectl create -f harbor-core-ingress.yaml -n c7n-system
  4. 在 Chart 中配置新的 secret 名

    1. expose:
    2. tls:
    3. certSource: secret
    4. secretName: <secret-name-from-step-2>

首先需要将 harbor 升级到 1.10.1

  1. helm upgrade harbor c7n/harbor --version 1.3.6 -n c7n-system

再将 habor 升级到 2.1.4

  1. helm upgrade harbor c7n/harbor --version 1.5.4 \
  2. -f <(helm get values -n c7n-system harbor) \
  3. --set persistence.persistentVolumeClaim.trivy.storageClass=nfs-provisioner \
  4. -n c7n-system

微服务开发框架升级

开始进行升级部署前请先备份好配置和数据库!
请按以下顺序依次进行升级部署,请不要随意调整升级顺序。升级后可能数据库结构会发生改变,故不能进行版本回退。文档升级命令中的RELEASE NAME是在基于分步安装文档之上编写的,若你在安装时指定了其他RELEASE NAME,请以你安装时指定的RELEASE NAME为准。一键部署安装的请执行helm list命令查看RELEASE NAME。

添加Choerodon Chart仓库

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

清理 Redis

oauth的redis db3 需要清理掉 手动清理!!! 原因是相同的key前后两个版本类型不一致

升级 choerodon register

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-register

  • 升级服务

    1. helm upgrade --install choerodon-register c7n/choerodon-register \
    2. -f <(helm get values -n c7n-system choerodon-register) \
    3. --version 0.25.1 \
    4. --namespace c7n-system
  • 验证部署

    • 验证命令
    1. curl -s $(kubectl get svc choerodon-register -o jsonpath="{.spec.clusterIP}" -n c7n-system):8001/actuator/health | jq -r .status
    • 出现以下类似信息即为成功部署
    1. UP

升级 choerodon platform

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-platform

  • 升级服务

    1. helm upgrade --install choerodon-platform c7n/choerodon-platform \
    2. -f <(helm get values -n c7n-system choerodon-platform) \
    3. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    4. --version 0.25.1 \
    5. --namespace c7n-system
  • 验证部署

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

升级 choerodon admin

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-admin

  • 升级服务

    1. helm upgrade --install choerodon-admin c7n/choerodon-admin \
    2. -f <(helm get values -n c7n-system choerodon-admin) \
    3. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    4. --version 0.25.0 \
    5. --namespace c7n-system
  • 验证部署

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

升级 choerodon iam

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-iam。 cat

  • 升级服务

    1. helm upgrade --install choerodon-iam c7n/choerodon-iam \
    2. -f <(helm get values -n c7n-system choerodon-iam) \
    3. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    4. --version 0.25.10 \
    5. --namespace c7n-system
  • 验证部署

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

升级 choerodon asgard

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-asgard

  • 升级服务

    1. helm upgrade --install choerodon-asgard c7n/choerodon-asgard \
    2. -f <(helm get values -n c7n-system choerodon-asgard) \
    3. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    4. --version 0.25.2 \
    5. --namespace c7n-system
  • 验证升级

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

升级 choerodon message

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-message

  • 升级服务

    1. helm upgrade --install choerodon-message c7n/choerodon-message \
    2. -f <(helm get values -n c7n-system choerodon-message) \
    3. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    4. --version 0.25.3 \
    5. --namespace c7n-system
  • 验证部署

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

部署 choerodon swagger

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-swagger

  • 编写参数配置文件 choerodon-swagger.yaml

  • 升级服务

    1. helm upgrade --install choerodon-swagger c7n/choerodon-swagger \
    2. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    3. -f <(helm get values -n c7n-system choerodon-swagger) \
    4. --version 0.25.0 \
    5. --namespace c7n-system
  • 验证部署

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

升级 choerodon gateway

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-gateway

  • 升级服务

    1. helm upgrade --install choerodon-gateway c7n/choerodon-gateway \
    2. -f <(helm get values -n c7n-system choerodon-gateway) \
    3. --version 0.25.2 \
    4. --namespace c7n-system
  • 验证部署

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

升级 choerodon oauth

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-oauth

  • 升级服务

    1. helm upgrade --install choerodon-oauth c7n/choerodon-oauth \
    2. -f <(helm get values -n c7n-system choerodon-oauth) \
    3. --version 0.25.5 \
    4. --namespace c7n-system
  • 验证部署

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

升级 choerodon monitor

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-monitor

  • 升级服务

    1. helm upgrade --install choerodon-monitor c7n/choerodon-monitor \
    2. -f <(helm get values -n c7n-system choerodon-monitor) \
    3. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    4. --version 0.25.0 \
    5. --namespace c7n-system
  • 验证部署

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

升级 choerodon file

  • 若需了解项目详情及各项参数含义,请移步 open-hand/choerodon-file

  • 升级服务

    1. helm upgrade --install choerodon-file c7n/choerodon-file \
    2. -f <(helm get values -n c7n-system choerodon-file) \
    3. --set preJob.image=registry.cn-shanghai.aliyuncs.com/c7n/dbtool:0.8.0 \
    4. --version 0.25.7 \
    5. --namespace c7n-system
  • 验证部署

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

敏捷管理升级

- 开始进行升级部署前请先备份好数据库。

- 由于要修数据,务必停掉前端、后端访问入口,防止修数据过程中访问接口导致的脏数据
- 一次性修数据任务job,考虑多pod的修数据情况,建议最好只启动一个pod修数据

升级 agile service

- 开始进行升级部署前请先备份好数据库。

  • 升级服务

    1. helm upgrade agile-service c7n/agile-service \
    2. -f <(helm get values -n c7n-system agile-service) \
    3. --version 0.25.5 \
    4. --namespace c7n-system
  • 注意: 请务必跟踪 agile service pod 的日志,直至出现以下日志后,数据迁移修复成功

  1. ==============================>>>>>>>> AGILE Data Fix End, Success! Version: 0.25.0 <<<<<<<<=================================
  • 验证升级

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

升级 test manager service

- 开始进行升级部署前请先备份好数据库。

  • 升级服务

    1. helm upgrade test-manager-service c7n/test-manager-service \
    2. -f <(helm get values -n c7n-system test-manager-service) \
    3. --set env.open.SERVICES_FRONT_URL=app.example.choerodon.io \
    4. --version 0.25.6 \
    5. --namespace c7n-system
  • 验证部署

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

升级 knowledgebase service

  • 升级 elasticsearch

    1. helm upgrade --install elasticsearch-kb c7n/elasticsearch-kb \
    2. -f <(helm get values -n c7n-system elasticsearch-kb) \
    3. --version 0.25.0 \
    4. --namespace c7n-system
  • 升级服务

    1. helm upgrade knowledgebase-service c7n/knowledgebase-service \
    2. -f <(helm get values -n c7n-system knowledgebase-service) \
    3. --version 0.25.0 \
    4. --namespace c7n-system
  • 验证部署

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

DevOps服务升级

升级gitlab service

  • 升级gitlab-service

    1. helm upgrade gitlab-service c7n/gitlab-service \
    2. -f <(helm get values -n c7n-system gitlab-service) \
    3. --version 0.25.0 \
    4. --namespace c7n-system
  • 验证升级

    • 验证命令
    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

  • 升级workflow-service

    1. helm upgrade workflow-service c7n/workflow-service \
    2. -f <(helm get values -n c7n-system workflow-service) \
    3. --set env.open.HWKF_WEB_DOMAIN_NAME=http://app.example.choerodon.io \
    4. --set env.open.SPRING_REDIS_HOST=c7n-redis.c7n-system.svc \
    5. --set env.open.SPRING_REDIS_PORT=6379 \
    6. --set env.open.SPRING_REDIS_DATABASE=1 \
    7. --set preJob.preInitDB.datasource.url="jdbc:mysql://c7n-mysql:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai" \
    8. --set preJob.preInitDB.datasource.username=choerodon \
    9. --set preJob.preInitDB.datasource.password=password \
    10. --set preJob.preInitDB.datasources.platform.url="jdbc:mysql://c7n-mysql:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai" \
    11. --set preJob.preInitDB.datasources.platform.username=choerodon \
    12. --set preJob.preInitDB.datasources.platform.password=password \
    13. --set preJob.preInitDB.datasources.message.url="jdbc:mysql://c7n-mysql:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai" \
    14. --set preJob.preInitDB.datasources.message.username=choerodon \
    15. --set preJob.preInitDB.datasources.message.password=password \
    16. --set resources.limits.memory=3Gi \
    17. --set resources.requests.memory=3Gi \
    18. --version 0.25.2 \
    19. --namespace c7n-system
  • 验证升级

    • 验证命令
    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

升级devops service

  • 升级devops-service:

    1. helm upgrade devops-service c7n/devops-service \
    2. -f <(helm get values -n c7n-system devops-service) \
    3. --set env.open.AGENT_VERSION="0.25.2" \
    4. --set preJob.preInitDB.datasources.message.url="jdbc:mysql://c7n-mysql:3306/?useUnicode=true&characterEncoding=utf-8&useSSL=false&useInformationSchema=true&remarks=true&serverTimezone=Asia/Shanghai" \
    5. --set preJob.preInitDB.datasources.message.username=choerodon \
    6. --set preJob.preInitDB.datasources.message.password=password \
    7. --version 0.25.9 \
    8. --namespace c7n-system
    • 验证命令
    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

制品库升级

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

部署 code repo service

  • 若需了解项目详情及各项参数含义,请移步 open-hand/code-repo-service

  • 部署服务

    1. helm upgrade --install code-repo-service c7n/code-repo-service \
    2. -f <(helm get values -n c7n-system code-repo-service) \
    3. --version 0.25.4 \
    4. --namespace c7n-system
  • 验证部署

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

部署 prod-repo-service

  • 若需了解项目详情及各项参数含义,请移步 open-hand/prod-repo-service

  • 部署服务

    1. helm upgrade --install prod-repo-service c7n/prod-repo-service \
    2. -f <(helm get values -n c7n-system prod-repo-service) \
    3. --set env.open.HARBOR_API_VERSION="v2" \
    4. --version 0.25.10 \
    5. --namespace c7n-system
  • 验证部署

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

整合前端升级

安装choerodon-front-hzero

  • 编写参数配置文件 choerodon-front-hzero.yaml

    1. env:
    2. open:
    3. BUILD_CLIENT_ID: choerodon
    4. BUILD_API_HOST: http://api.example.choerodon.io
    5. BUILD_WEBSOCKET_HOST: http://api.example.choerodon.io/hpfm/sock-js
    6. ingress:
    7. enabled: true
    8. host: hzero.example.choerodon.io
  • 部署服务

  1. helm upgrade --install choerodon-front-hzero c7n/choerodon-front-hzero \
  2. -f choerodon-front-hzero.yaml \
  3. --version 0.25.0 \
  4. --namespace c7n-system
  • 验证部署

    • 验证命令

      1. curl $(kubectl get svc choerodon-front-hzero -o jsonpath="{.spec.clusterIP}" -n c7n-system):80
    • 出现以下类似信息即为成功部署

      1. !doctype html><html lang="zh"><head><meta charset="utf-8"/><title>HZERO</title><link rel="shortcut icon" href="/manifest.json"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><meta name="theme-color" content="#000000"/><meta name="format-detection" content="telephone=no"/>...

升级choerodon-front

  • 升级服务

    1. helm upgrade choerodon-front c7n/choerodon-front \
    2. -f <(helm get values -n c7n-system choerodon-front) \
    3. --version 0.25.4 \
    4. --namespace c7n-system
  • 验证升级

    • 验证命令
    1. curl $(kubectl get svc choerodon-front -o jsonpath="{.spec.clusterIP}" -n c7n-system):8080
    • 出现以下类似信息即为成功升级
    1. <!DOCTYPE html><html><head><meta http-equiv="Content-type"content="text/html; charset=utf-8"><title>Choerodon</title><link rel="shortcut icon"href="favicon.ico"></head><body><div id="app"></div><script type="text/javascript"src="app/vendor_19e4b950.js"></script><script type="text/javascript"src="app/main_19e4b950.js"></script></body></html>

默认登录用户

升级完成后,默认的管理员用户名密码为 [admin/Admin@123!],可使用此用户密码登陆系统。安装完成后建议立即在个人中心修改默认密码。

项目类型同步

使用 admin 用户 token GET 方式调用 https://api.choerodon.com.cn/iam/choerodon/v1/upgrade/pro/project-category

刷新组织角色权限

使用 admin 用户 token PUT方式调用https://api.example.com./iam/choerodon/v1/permission/role_permission_async

菜单同步

重启 choerodon-iam 或者使用 admin 用户 token PUT方式调用https://api.example.com./iam/choerodon/v1/permission/role_permission_async

刷新 lov

重启 choerodon-platform,刷新 lov 缓存

更改Minio Bucket权限

如果0.22升级时已经更改,可忽略该操作。

对于之前0.22版本之前创建的文件夹,需要手动在minio界面更改权限为( * Read and Write)。 从0.24升级到0.25 - 图1