2021 年 11 月 16 日,Zadig 正式发布 v1.7.0。

功能列表

  • 支持用户管理
  • 支持项目权限管理
  • 支持外部系统常用链接管理
  • 托管项目工作流支持 Webhook 触发服务更新

版本升级过程

背景信息

  1. Kubernetes 集群版本:v1.16~v1.21。
  2. 不支持跨版本升级,如果当前 Zadig 系统版本 < v1.6.0,请先参考 v1.6.0 升级方式 升级到 v1.6.0,再按照以下方式升级到 v1.7.0。
  3. v1.7.0 版本中未保留用户账号信息,安装完成后,使用系统提供的内置账号密码在用户管理里新建即可。

基于现有 K8s 集群-高可用数据库的升级流程

步骤 1:备份数据

高可用数据库,通过云厂商配置做 MongoDB 全量备份。

步骤 2:卸载 Zadig

  1. 下载卸载脚本v1.7.0 Release Notes - 图1 (opens new window)
  2. 设置需要卸载的命名空间并执行卸载脚本
  1. export NAMESPACE=<Zadig 所在的 Namespace>
  2. bash uninstall.sh

步骤 3:安装 Zadig v1.7.0

  1. 下载安装脚本v1.7.0 Release Notes - 图2 (opens new window),执行安装脚本。
  1. export ENCRYPTION_KEY=<第一次安装时获得的 ENCRYPTION_KEY>
  2. # 配置必要的参数,具体参考[基于现有 Kubernetes 安装](/v1.7.1/install/install-on-k8s/)
  3. ./install.sh
  1. 下载数据同步工具v1.7.0 Release Notes - 图3 (opens new window),执行升级 Job。

    1. 最后一行脚本 value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}修改为系统实际访问域名/IP
    2. mongodb://zadig-mongodb:27017 修改为对应的连接串
    3. -d下面一行的zadig 修改为对应的 dbname
    4. 执行如下命令
    1. kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
  2. 确保 Job 执行成功

步骤 4:验证安装结果

  1. 版本信息确认
    1. 访问 <安装后的 Zadig 地址>/signin
    2. 查看登录界面右下角 info 提示,Version 信息为 1.7.0
  2. 新版本正确性检查,推荐校验点
    1. 管理员访问系统中任一正常使用的项目
    2. 执行工作流,对指定环境的服务进行部署更新
    3. 新建集成环境、删除集成环境、更新集成环境
    4. 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发

失败回滚流程

  1. 卸载 Zadig (方式:步骤 2
  2. 重新安装 Zadig v1.6.0

注:在安装完成后先不要进入系统,等待数据恢复

  1. 回滚数据至备份版本
  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 执行以下命令进行 port 转发
  3. kubectl port-forward svc/zadig-MongoDB -n <Zadig 所在的 Namespace> 27090:27017
  4. # 对数据进行恢复
  5. mongorestore mongodb://localhost:27090 <备份数据文件/目录>
  1. 执行回滚 Job

    1. 下载数据回滚工具v1.7.0 Release Notes - 图4 (opens new window)
    2. 修改 YAML 最后一行修改为系统实际访问域名/IP
    3. 执行如下命令
    1. kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>

基于现有 K8s 集群-使用 Zadig 内置 MongoDB 的升级流程

步骤 1:备份数据

由 Zadig 安装的 MongoDB 的备份

  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 寻找 zadig-mongodb 开头的 Pod 名称,执行以下命令进行 port 转发
  3. kubectl port-forward svc/zadig-mongodb -n <Zadig 所在的 Namespace> 27090:27017
  4. # 对数据进行备份
  5. mongodump --out=<你想要的路径> --db=zadig mongodb://localhost:27090

步骤 2:卸载 Zadig

  1. 下载卸载脚本v1.7.0 Release Notes - 图5 (opens new window)
  2. 设置需要卸载的命名空间并执行卸载脚本
  1. export NAMESPACE=<Zadig 所在的 Namespace>
  2. bash uninstall.sh

步骤 3:安装 Zadig v1.7.0

  1. 下载安装脚本v1.7.0 Release Notes - 图6 (opens new window),执行安装脚本。
  1. export ENCRYPTION_KEY=<第一次安装时获得的 ENCRYPTION_KEY>
  2. # 配置必要的参数,具体参考[基于现有 Kubernetes 安装](/v1.7.1/install/install-on-k8s/)
  3. ./install.sh
  1. 确保安装完成后 Pod 状况正常 (如果不正常,自行解决)
  2. 恢复数据至备份版本
  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 执行以下命令获取 MongoDB 的 Pod 名称
  3. kubectl get pods -n <Zadig 所在的 Namespace>
  4. # 寻找 zadig-mongodb 开头的 Pod 名称, 执行以下命令进行 port 转发
  5. kubectl port-forward pod/<上一步中获取到的 Pod 名称> -n <Zadig 所在的 Namespace> 27090:27017
  6. # 如果使用 Zadig 安装的 MongoDB,对数据进行恢复
  7. mongorestore mongodb://localhost:27090 <备份数据文件/目录>
  1. 下载数据同步工具v1.7.0 Release Notes - 图7 (opens new window),执行升级 Job。

    1. 修改 YAML 最后一行脚本 value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }} 为系统实际访问域名/IP
    2. 执行如下命令。
    1. kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
  2. 确保 Job 执行成功。

步骤 4:验证安装结果

  1. 版本信息确认
    1. 访问 <安装后的 Zadig 地址>/signin
    2. 查看登录界面右下角 info 提示,Version 信息为 1.7.0
  2. 新版本正确性检查,推荐校验点
    1. 管理员访问系统中任一正常使用的项目
    2. 执行工作流,对指定环境的服务进行部署更新
    3. 新建集成环境、删除集成环境、更新集成环境
    4. 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发

失败回滚流程

  1. 卸载 Zadig (方式:步骤 2
  2. 重新安装 Zadig v1.6.0

注:在安装完成后先不要进入系统,等待数据恢复

  1. 回滚数据至备份版本
  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 执行以下命令进行 port 转发
  3. kubectl port-forward svc/zadig-mongodb -n <Zadig 所在的 Namespace> 27090:27017
  4. # 对数据进行恢复
  5. mongorestore mongodb://localhost:27090 <备份数据文件/目录>
  1. 执行回滚 Job

    1. 下载数据回滚工具v1.7.0 Release Notes - 图8 (opens new window)
    2. 根据自己 Zadig 的安装方式,修改 YAML 内容:
      1. 最后一行修改为系统实际访问域名/IP
      2. mongodb://zadig-mongodb:27017修改为对应的连接串
      3. -d下面一行的zadig修改为对应的 dbname
    3. 执行如下命令
    1. kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>

基于 Helm 命令-高可用数据库的升级流程

步骤 1:备份数据

高可用数据库,通过云厂商配置做 MongoDB 全量备份。

步骤 2:卸载 Zadig

  1. helm list -n <Zadig 所在的 Namespace> # 获得 Zadig 的 release name
  2. helm uninstall <release name> -n <Zadig 所在的 Namespace>

步骤 3:安装 Zadig v1.7.0

  1. 根据 Helm 命令生成工具v1.7.0 Release Notes - 图9 (opens new window) 生成安装命令
  1. (执行生成的 Helm 安装命令) helm install ...
  1. 下载数据同步工具v1.7.0 Release Notes - 图10 (opens new window),执行升级 Job。

    1. 最后一行脚本 value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}修改为系统实际访问域名/IP
    2. mongodb://zadig-mongodb:27017 修改为对应的连接串
    3. -d下面一行的zadig 修改为对应的 dbname
    4. 执行如下命令
    1. kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
  2. 确保 Job 执行成功

步骤 4:验证安装结果

  1. 版本信息确认
    1. 访问 <安装后的 Zadig 地址>/signin
    2. 查看登录界面右下角 info 提示,Version 信息为 1.7.0
  2. 新版本正确性检查,推荐校验点
    1. 管理员访问系统中任一正常使用的项目
    2. 执行工作流,对指定环境的服务进行部署更新
    3. 新建集成环境、删除集成环境、更新集成环境
    4. 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发

失败回滚流程

  1. 卸载 Zadig (方式:步骤 2
  2. 重新安装 Zadig v1.6.0

注:在安装完成后先不要进入系统,等待数据恢复

  1. 回滚数据至备份版本
  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 执行以下命令进行 port 转发
  3. kubectl port-forward svc/zadig-MongoDB -n <Zadig 所在的 Namespace> 27090:27017
  4. # 对数据进行恢复
  5. mongorestore mongodb://localhost:27090 <备份数据文件/目录>
  1. 执行回滚 Job

    1. 下载数据回滚工具v1.7.0 Release Notes - 图11 (opens new window)
    2. 修改 YAML 最后一行修改为系统实际访问域名/IP
    3. 执行如下命令
    1. kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>

基于 Helm 命令-使用 Zadig 内置 MongoDB 的升级流程

步骤 1:备份数据

由 Zadig 安装的 MongoDB 的备份

  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 寻找 zadig-mongodb 开头的 Pod 名称,执行以下命令进行 port 转发
  3. kubectl port-forward svc/zadig-mongodb -n <Zadig 所在的 Namespace> 27090:27017
  4. # 对数据进行备份
  5. mongodump --out=<你想要的路径> --db=zadig mongodb://localhost:27090

步骤 2:卸载 Zadig

  1. helm list -n <Zadig 所在的 Namespace> # 获得 Zadig 的 release name
  2. helm uninstall <release name> -n <Zadig 所在的 Namespace>

步骤 3:安装 Zadig v1.7.0

  1. 根据 Helm 命令生成工具v1.7.0 Release Notes - 图12 (opens new window) 生成安装命令
  1. (执行生成的 Helm 安装命令) helm install ...
  1. 确保安装完成后 Pod 状况正常 (如果不正常,自行解决)
  2. 恢复数据至备份版本
  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 执行以下命令获取 MongoDB 的 Pod 名称
  3. kubectl get pods -n <Zadig 所在的 Namespace>
  4. # 寻找 zadig-mongodb 开头的 Pod 名称, 执行以下命令进行 port 转发
  5. kubectl port-forward pod/<上一步中获取到的 Pod 名称> -n <Zadig 所在的 Namespace> 27090:27017
  6. # 如果使用 Zadig 安装的 MongoDB,对数据进行恢复
  7. mongorestore mongodb://localhost:27090 <备份数据文件/目录>
  1. 下载数据同步工具v1.7.0 Release Notes - 图13 (opens new window),执行升级 Job。

    1. 修改 YAML 最后一行脚本 value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }} 为系统实际访问域名/IP
    2. 执行如下命令。
    1. kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
  2. 确保 Job 执行成功。

步骤 4:验证安装结果

  1. 版本信息确认
    1. 访问 <安装后的 Zadig 地址>/signin
    2. 查看登录界面右下角 info 提示,Version 信息为 1.7.0
  2. 新版本正确性检查,推荐校验点
    1. 管理员访问系统中任一正常使用的项目
    2. 执行工作流,对指定环境的服务进行部署更新
    3. 新建集成环境、删除集成环境、更新集成环境
    4. 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发

失败回滚流程

  1. 卸载 Zadig (方式:步骤 2
  2. 重新安装 Zadig v1.6.0

注:在安装完成后先不要进入系统,等待数据恢复

  1. 回滚数据至备份版本
  1. # 确保操作的机器上有 MongoDB 客户端
  2. # 执行以下命令进行 port 转发
  3. kubectl port-forward svc/zadig-mongodb -n <Zadig 所在的 Namespace> 27090:27017
  4. # 对数据进行恢复
  5. mongorestore mongodb://localhost:27090 <备份数据文件/目录>
  1. 执行回滚 Job

    1. 下载数据回滚工具v1.7.0 Release Notes - 图14 (opens new window)
    2. 根据自己 Zadig 的安装方式,修改 YAML 内容:
      1. 最后一行修改为系统实际访问域名/IP
      2. mongodb://zadig-mongodb:27017修改为对应的连接串
      3. -d下面一行的zadig修改为对应的 dbname
    3. 执行如下命令
    1. kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>