2021 年 11 月 16 日,Zadig 正式发布 v1.7.0。
功能列表
- 支持用户管理
- 支持项目权限管理
- 支持外部系统常用链接管理
- 托管项目工作流支持 Webhook 触发服务更新
版本升级过程
背景信息
- Kubernetes 集群版本需要 ≥ 1.16。
- 不支持跨版本升级,如果当前 Zadig 系统版本 < v1.6.0,请先参考 v1.6.0 升级方式 升级到 v1.6.0,再按照以下方式升级到 v1.7.0。
- v1.7.0 版本中未保留用户账号信息,安装完成后,使用系统提供的内置账号密码在用户管理里新建即可。
基于现有 K8s 集群-高可用数据库的升级流程
步骤 1:备份数据
高可用数据库,通过云厂商配置做 MongoDB 全量备份。
步骤 2:卸载 Zadig
- 下载卸载脚本 (opens new window)
- 设置需要卸载的命名空间并执行卸载脚本
export NAMESPACE=<Zadig 所在的 namespace>
bash uninstall.sh
步骤 3:安装 Zadig v1.7.0
- 下载安装脚本 (opens new window),执行安装脚本。
export ENCRYPTION_KEY=<第一次安装时获得的 ENCRYPTION_KEY>
# 配置必要的参数,具体参考[基于现有 Kubernetes 安装](/install/install-on-k8s/)
./install.sh
下载数据同步工具 (opens new window),执行升级 Job。
- 最后一行脚本
value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}
修改为系统实际访问域名/IP mongodb://zadig-mongodb:27017
修改为对应的连接串-d
下面一行的zadig
修改为对应的 dbname- 执行如下命令
kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
- 最后一行脚本
确保 Job 执行成功
步骤 4:验证安装结果
- 版本信息确认
- 访问 <安装后的 Zadig 地址>/signin
- 查看登录界面右下角 info 提示,Version 信息为 1.7.0
- 新版本正确性检查,推荐校验点
- 管理员访问系统中任一正常使用的项目
- 执行工作流,对指定环境的服务进行部署更新
- 新建集成环境、删除集成环境、更新集成环境
- 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发
失败回滚流程
- 卸载 Zadig (方式步骤 2)
- 重新安装 Zadig v1.6.0
注:在安装完成后先不要进入系统,等待数据恢复
- 回滚数据至备份版本
# 确保操作的机器上有 MongoDB 客户端
# 执行以下命令进行 port 转发
kubectl port-forward svc/zadig-MongoDB -n <Zadig 所在的 namespace> 27090:27017
# 对数据进行恢复
mongorestore mongodb://localhost:27090 <备份数据文件/目录>
执行回滚 Job
- 下载数据回滚工具 (opens new window)
- 修改 YAML 最后一行修改为系统实际访问域名/IP
- 执行如下命令
kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>
基于现有 K8s 集群-使用 Zadig 内置 MongoDB 的升级流程
步骤 1:备份数据
由 Zadig 安装的 MongoDB 的备份
# 确保操作的机器上有 MongoDB 客户端
# 寻找 zadig-mongodb 开头的 Pod 名称,执行以下命令进行 port 转发
kubectl port-forward svc/zadig-mongodb -n <Zadig 所在的 namespace> 27090:27017
# 对数据进行备份
mongodump --out=<你想要的路径> --db=zadig mongodb://localhost:27090
步骤 2:卸载 Zadig
- 下载卸载脚本 (opens new window)
- 设置需要卸载的命名空间并执行卸载脚本
export NAMESPACE=<Zadig 所在的 namespace>
bash uninstall.sh
步骤 3:安装 Zadig v1.7.0
- 下载安装脚本 (opens new window),执行安装脚本。
export ENCRYPTION_KEY=<第一次安装时获得的 ENCRYPTION_KEY>
# 配置必要的参数,具体参考[基于现有 Kubernetes 安装](/install/install-on-k8s/)
./install.sh
- 确保安装完成后 Pod 状况正常 (如果不正常,自行解决)
- 恢复数据至备份版本
# 确保操作的机器上有 MongoDB 客户端
# 执行以下命令获取 MongoDB 的 Pod 名称
kubectl get pods -n <Zadig 所在的namespace>
# 寻找 zadig-mongodb 开头的 Pod 名称, 执行以下命令进行 port 转发
kubectl port-forward pod/<上一步中获取到的 Pod 名称> -n <Zadig 所在的 namespace> 27090:27017
# 如果使用 Zadig 安装的 MongoDB,对数据进行恢复
mongorestore mongodb://localhost:27090 <备份数据文件/目录>
下载数据同步工具 (opens new window),执行升级 Job。
- 修改 YAML 最后一行脚本
value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}
为系统实际访问域名/IP - 执行如下命令。
kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
- 修改 YAML 最后一行脚本
确保 Job 执行成功。
步骤 4:验证安装结果
- 版本信息确认
- 访问 <安装后的 Zadig 地址>/signin
- 查看登录界面右下角 info 提示,Version 信息为 1.7.0
- 新版本正确性检查,推荐校验点
- 管理员访问系统中任一正常使用的项目
- 执行工作流,对指定环境的服务进行部署更新
- 新建集成环境、删除集成环境、更新集成环境
- 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发
失败回滚流程
- 卸载 Zadig (方式步骤 2)
- 重新安装 Zadig v1.6.0
注:在安装完成后先不要进入系统,等待数据恢复
- 回滚数据至备份版本
# 确保操作的机器上有 MongoDB 客户端
# 执行以下命令进行 port 转发
kubectl port-forward svc/zadig-mongodb -n <zadig所在的namespace> 27090:27017
# 对数据进行恢复
mongorestore mongodb://localhost:27090 <备份数据文件/目录>
执行回滚 Job
- 下载数据回滚工具 (opens new window)
- 根据自己 Zadig 的安装方式,修改 YAML 内容:
- 最后一行修改为系统实际访问域名/IP
mongodb://zadig-mongodb:27017
修改为对应的连接串-d
下面一行的zadig
修改为对应的 dbname
- 执行如下命令
kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>
基于 Helm 命令-高可用数据库的升级流程
步骤 1:备份数据
高可用数据库,通过云厂商配置做 MongoDB 全量备份。
步骤 2:卸载 Zadig
helm uninstall <zadig release name> -n <zadig 所在namespace>
步骤 3:安装 Zadig v1.7.0
- 根据 Helm 命令生成工具 (opens new window) 生成安装命令
(执行生成的 Helm 安装命令) helm install ...
下载数据同步工具 (opens new window),执行升级 Job。
- 最后一行脚本
value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}
修改为系统实际访问域名/IP mongodb://zadig-mongodb:27017
修改为对应的连接串-d
下面一行的zadig
修改为对应的 dbname- 执行如下命令
kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
- 最后一行脚本
确保 Job 执行成功
步骤 4:验证安装结果
- 版本信息确认
- 访问 <安装后的 Zadig 地址>/signin
- 查看登录界面右下角 info 提示,Version 信息为 1.7.0
- 新版本正确性检查,推荐校验点
- 管理员访问系统中任一正常使用的项目
- 执行工作流,对指定环境的服务进行部署更新
- 新建集成环境、删除集成环境、更新集成环境
- 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发
失败回滚流程
- 卸载 Zadig (方式步骤 2)
- 重新安装 Zadig v1.6.0
注:在安装完成后先不要进入系统,等待数据恢复
- 回滚数据至备份版本
# 确保操作的机器上有 MongoDB 客户端
# 执行以下命令进行 port 转发
kubectl port-forward svc/zadig-MongoDB -n <Zadig 所在的 namespace> 27090:27017
# 对数据进行恢复
mongorestore mongodb://localhost:27090 <备份数据文件/目录>
执行回滚 Job
- 下载数据回滚工具 (opens new window)
- 修改 YAML 最后一行修改为系统实际访问域名/IP
- 执行如下命令
kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>
基于 Helm 命令-使用 Zadig 内置 MongoDB 的升级流程
步骤 1:备份数据
由 Zadig 安装的 MongoDB 的备份
# 确保操作的机器上有 MongoDB 客户端
# 寻找 zadig-mongodb 开头的 Pod 名称,执行以下命令进行 port 转发
kubectl port-forward svc/zadig-mongodb -n <Zadig 所在的 namespace> 27090:27017
# 对数据进行备份
mongodump --out=<你想要的路径> --db=zadig mongodb://localhost:27090
步骤 2:卸载 Zadig
helm uninstall <zadig release name> -n <zadig 所在namespace>
步骤 3:安装 Zadig v1.7.0
- 根据 Helm 命令生成工具 (opens new window) 生成安装命令
(执行生成的 Helm 安装命令) helm install ...
- 确保安装完成后 Pod 状况正常 (如果不正常,自行解决)
- 恢复数据至备份版本
# 确保操作的机器上有 MongoDB 客户端
# 执行以下命令获取 MongoDB 的 Pod 名称
kubectl get pods -n <Zadig 所在的namespace>
# 寻找 zadig-mongodb 开头的 Pod 名称, 执行以下命令进行 port 转发
kubectl port-forward pod/<上一步中获取到的 Pod 名称> -n <Zadig 所在的 namespace> 27090:27017
# 如果使用 Zadig 安装的 MongoDB,对数据进行恢复
mongorestore mongodb://localhost:27090 <备份数据文件/目录>
下载数据同步工具 (opens new window),执行升级 Job。
- 修改 YAML 最后一行脚本
value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}
为系统实际访问域名/IP - 执行如下命令。
kubectl apply -f 1.7.0-upgrade.yaml -n <Zadig 所在 namespace>
- 修改 YAML 最后一行脚本
确保 Job 执行成功。
步骤 4:验证安装结果
- 版本信息确认
- 访问 <安装后的 Zadig 地址>/signin
- 查看登录界面右下角 info 提示,Version 信息为 1.7.0
- 新版本正确性检查,推荐校验点
- 管理员访问系统中任一正常使用的项目
- 执行工作流,对指定环境的服务进行部署更新
- 新建集成环境、删除集成环境、更新集成环境
- 提交代码变更,确认配置了 Webhook 的工作流是否被按照预期触发
失败回滚流程
- 卸载 Zadig (方式步骤 2)
- 重新安装 Zadig v1.6.0
注:在安装完成后先不要进入系统,等待数据恢复
- 回滚数据至备份版本
# 确保操作的机器上有 MongoDB 客户端
# 执行以下命令进行 port 转发
kubectl port-forward svc/zadig-mongodb -n <zadig所在的namespace> 27090:27017
# 对数据进行恢复
mongorestore mongodb://localhost:27090 <备份数据文件/目录>
执行回滚 Job
- 下载数据回滚工具 (opens new window)
- 根据自己 Zadig 的安装方式,修改 YAML 内容:
- 最后一行修改为系统实际访问域名/IP
mongodb://zadig-mongodb:27017
修改为对应的连接串-d
下面一行的zadig
修改为对应的 dbname
- 执行如下命令
kubectl apply -f 1.7.0-revert.yaml -n <Zadig 所在 namespace>