v1.15.0 Release Notes
2022 年 9 月 30 日,Zadig 正式发布 v1.15.0。
功能列表
开发者体验
- 支持 Zadig 手机版
- 支持本地安装 Zadig
- 支持自定义工作流 API
- 前端交互和样式优化
工作流
- 自定义工作流支持测试任务
- 自定义工作流支持原生 Kubernetes 部署
- 自定义工作流支持通知
- 自定义工作流支持协作模式
- 自定义任务支持枚举类型
- 自定义工作流支持定时器
其他
- 显式支持 AWS 资源(对象存储、K8s 集群、镜像仓库)
- K8s YAML 模板支持 go template 方式
- 升级类库,提升代码安全性
缺陷与优化
- 自定义工作流名称长度优化
- 修复使用构建模板时配置工作流触发器无法选择代码仓库的问题
- 修复工作流构建配置中包括不存在服务的问题
- 修复未启用的软件包无法在系统中编辑的问题
- 修复代码源 URL 中含 Path 时拉取代码失败的问题
- 修复在环境中点击工作流升级时未对工作流做分支过滤的问题
- 交付物部署工作流的编辑不再依赖服务构建配置
- Helm Chart 项目使用模板创建的服务支持编辑 values.yaml
业务变更声明
声明
为实现更安全更细粒度的 ABAC 权限管理,本次版本中针对生产/预发布
环境做如下业务调整,请详细阅读知晓后再升级。
变更范围
- 项目权限管理中,「角色」->「权限列表」去除
环境(生产/预发布)
的相关配置项。 - 「项目」->「环境」页面去除
生产
标签和生产集群
信息。 - 「系统设置」->「集群管理」去除生产集群标识的相关配置。
影响范围
有生产集群相关权限配置的用户,在升级后其环境权限配置将全部失效。
如何操作修复
项目管理员在升级后通过协作模式重新配置所有环境的权限,实现细粒度环境权限管理,参考:协作模式。
版本升级过程
注意事项
- 本次版本有业务变更,请详细阅读 业务变更声明 后再继续升级操作
- 如果当前系统版本 < v1.14.0,请先升级到 v1.14.0,具体升级过程参见 v1.14.0 升级方式,再按照以下方式升级到 v1.15.0
- 本次版本升级涉及基础组件更新,若你使用 Zadig 内置的 MongoDB,MySQL,MinIO 对象存储组件,请务必按照升级指南做好数据的备份/恢复工作
数据库备份
如果已经正式使用,升级前请务必做好数据库备份
高可用数据库
如果使用外部的高可用数据库存储数据,数据的备份恢复操作如下:
- 数据库备份命令:
- 备份 MongoDB 数据
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
- 备份 MySQL 数据
mysqldump -h <HOST> -P <PORT> -u root -p user > user.sql
mysqldump -h <HOST> -P <PORT> -u root -p dex > dex.sql
- 数据库恢复命令:
- 恢复 MongoDB 数据
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存储路径
- 恢复 MySQL 数据
# 在 MySQL 中执行如下操作:
mysql> drop database user;
mysql> create database user;
mysql> drop database dex;
mysql> create database dex;
# 命令行执行如下数据恢复操作:
mysql -h <HOST> -P <PORT> -u root -p user < user.sql
mysql -h <HOST> -P <PORT> -u root -p dex < dex.sql
内置数据库
如果使用 Zadig 内置的数据库组件,升级前必须做好数据库备份
数据库备份命令:
- 备份 MySQL 数据
内置 MySQL 服务默认密码为 zadig
kubectl port-forward svc/zadig-mysql -n ${NAMESPACE} 3306:3306
mysqldump -h 127.0.0.1 -P 3306 -u root -p user > user.sql
mysqldump -h 127.0.0.1 -P 3306 -u root -p dex > dex.sql
- 备份 MongoDB 数据
kubectl port-forward svc/zadig-mongodb -n <Zadig 所在的 Namespace> 27090:27017
mongodump --out=<你想要的路径> --db=zadig mongodb://localhost:27090
mongodump --out=<你想要的路径> --db=zadig_policy mongodb://localhost:27090
对象存储数据备份
如果使用 Zadig 内置的 MinIO 组件作为对象存储服务,升级前必须做好数据备份
MinIO 数据备份操作:
- 参考 MinIO 官方文档 (opens new window),安装 MinIO 客户端 mc
- 访问 MinIO 服务
export NAMESPACE=<Zadig Namespace>
kubectl port-forward svc/zadig-minio -n ${NAMESPACE} 9000:9000
mc alias set zadig-minio http://localhost:9000 AKIAIOSFODNN72019EXAMPLE wJalrXUtnFEMI2019K7MDENGbPxRfiCYEXAMPLEKEY
- 备份文件对象
mc mirror zadig-minio/bucket/ ./bucket/
升级操作
请根据不同的安装方式执行对应的升级步骤。
安装方式:基于现有 Kubernetes 安装
该安装方式下,请使用基于现有 Kubernetes 安装新中的脚本进行升级。
安装方式:基于 Helm 命令安装
该种安装方式下,执行以下步骤升级至 v1.15.0:
- 执行以下命令后查看 zadig.yaml 文件,如果文件中包含镜像信息(即:
tag:a.b.c
),需要手动删除。
helm get values <Release Name> -n <Zadig Namespace> > zadig.yaml
- 如果曾经对以下 values 进行修改,请额外修改对应参数
- microservice.user.database => connections.mysql.db.user
- microservice.config.dexdatabase => connections.mysql.db.dex
- 根据安装方式,执行命令升级。
- 域名方式:
export NAMESPACE=<Zadig 安装的 NAMESPACE>
helm repo update
helm upgrade -f zadig.yaml <release_name> koderover-chart/zadig --namespace ${NAMESPACE} --version=1.15.0
- IP + PORT 方式:
export NAMESPACE=<Zadig 安装的 NAMESPACE>
export PORT=<30000 - 32767 任一端口,与初次安装时使用的端口不同即可>
helm repo update
helm upgrade -f zadig.yaml <release_name> koderover-chart/zadig --namespace ${NAMESPACE} \
--set gloo.gatewayProxies.gatewayProxy.service.httpNodePort=${PORT} \
--set gloo.gatewayProxies.gatewayProxy.service.type=NodePort --version=1.15.0
升级后操作
MySQL 数据恢复
如果使用 Zadig 内置的 MySQL 组件,升级后需要进行数据恢复
内置 MySQL 服务默认密码为 zadig
MySQL 数据恢复操作:
kubectl port-forward svc/kr-mysql -n <Zadig 所在的 Namespace> 3306:3306
mysql -h 127.0.0.1 -P 3306 -u root -p
# 在 MySQL 中执行如下操作:
mysql> drop database user;
mysql> create database user;
mysql> drop database dex;
mysql> create database dex;
# 命令行执行如下数据恢复操作:
mysql -h 127.0.0.1 -P 3306 -u root -p user < user.sql
mysql -h 127.0.0.1 -P 3306 -u root -p dex < dex.sql
MongoDB 数据恢复
如果使用 Zadig 内置的 MongoDB 组件,升级后需要进行数据恢复
- 数据恢复命令:
kubectl port-forward svc/kr-mongodb -n <Zadig 所在的 Namespace> 27090:27017
mongorestore mongodb://root:zadig@localhost:27090 <备份数据文件/目录> --drop
同步数据: 下载数据同步工具 (opens new window),执行升级 Job。
- 最后一行脚本
value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}
修改为系统实际访问域名/IP mongodb://zadig-mongodb:27017
修改为对应的连接串-d
下面一行的zadig
修改为对应的 dbname- 执行如下命令
kubectl apply -f 1.15.0-upgrade-helper.yaml -n <Zadig 所在 namespace>
- 确保 Job 执行成功
- 最后一行脚本
对象存储数据恢复
如果使用 Zadig 内置的 MinIO 组件作为对象存储服务,升级后需要进行数据恢复操作
- MinIO 数据恢复命令:
kubectl port-forward svc/kr-minio -n <Zadig 所在 namespace> 9000:9000
mc alias set zadig-minio http://localhost:9000 AKIAIOSFODNN72019EXAMPLE wJalrXUtnFEMI2019K7MDENGbPxRfiCYEXAMPLEKEY
mc mirror ./bucket/ zadig-minio/bucket/
- 对象存储设置: 登录 Zadig 系统,依次点击
系统设置
->对象存储
进入对象存储管理页面,编辑提供商/接入地址为zadig-minio.${NAMESPACE}.svc.cluster.local:9000
的记录,将接入地址改为kr-minio.${NAMESPACE}.svc.cluster.local:9000
,点击保存。