v1.15.0 Release Notes

    开发者体验

    • 支持 Zadig 手机版
    • 支持本地安装 Zadig
    • 支持自定义工作流 API
    • 前端交互和样式优化

    工作流

    • 自定义工作流支持测试任务
    • 自定义工作流支持原生 Kubernetes 部署
    • 自定义工作流支持通知
    • 自定义工作流支持协作模式
    • 自定义任务支持枚举类型
    • 自定义工作流支持定时器

    其他

    • 显式支持 AWS 资源(对象存储、K8s 集群、镜像仓库)
    • K8s YAML 模版支持 go template 方式
    • 升级类库,提升代码安全性

    缺陷与优化

    • 自定义工作流名称长度优化
    • 修复使用构建模板时配置工作流触发器无法选择代码仓库的问题
    • 修复工作流构建配置中包括不存在服务的问题
    • 修复未启用的软件包无法在系统中编辑的问题
    • 修复代码源 URL 中含 Path 时拉取代码失败的问题
    • 修复在环境中点击工作流升级时未对工作流做分支过滤的问题
    • Helm Chart 项目使用模版创建的服务支持编辑 values.yaml

    声明

    为实现更安全更细粒度的 ABAC 权限管理,本次版本中针对环境做如下业务调整,请详细阅读知晓后再升级。

    1. 项目权限管理中,「角色」->「权限列表」去除 环境(生产/预发布) 的相关配置项。
    2. 「项目」->「环境」页面去除生产标签和生产集群信息。
    3. 「系统设置」->「集群管理」去除生产集群标识的相关配置。

    影响范围

    有生产集群相关权限配置的用户,在升级后其环境权限配置将全部失效。

    注意事项

    • 本次版本有业务变更,请详细阅读 业务变更声明 后再继续升级操作
    • 如果当前系统版本 < v1.14.0,请先升级到 v1.14.0,具体升级过程参见 ,再按照以下方式升级到 v1.15.0
    • 本次版本升级涉及基础组件更新,若您使用 Zadig 内置的 MongoDB,MySQL,MinIO 对象存储组件,请务必按照升级指南做好数据的备份/恢复工作

    数据库备份

    如果已经正式使用,升级前请务必做好数据库备份

    高可用数据库

    如果使用外部的高可用数据库存储数据,数据的备份恢复操作如下:

    1. 数据库备份命令:
    • 备份 MongoDB 数据
    • 备份 MySQL 数据
    1. mysqldump -h <HOST> -P <PORT> -u root -p user > user.sql
    2. mysqldump -h <HOST> -P <PORT> -u root -p dex > dex.sql
    1. 数据库恢复命令:
    • 恢复 MongoDB 数据
    1. mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存储路径
    • 恢复 MySQL 数据
    1. # 在 MySQL 中执行如下操作:
    2. mysql> drop database user;
    3. mysql> create database user;
    4. mysql> drop database dex;
    5. mysql> create database dex;
    6. # 命令行执行如下数据恢复操作:
    7. mysql -h <HOST> -P <PORT> -u root -p user < user.sql
    8. mysql -h <HOST> -P <PORT> -u root -p dex < dex.sql

    内置数据库

    如果使用 Zadig 内置的数据库组件,升级前必须做好数据库备份

    数据库备份命令:

    • 备份 MySQL 数据
    1. kubectl port-forward svc/zadig-mysql -n ${NAMESPACE} 3306:3306
    2. mysqldump -h 127.0.0.1 -P 3306 -u root -p user > user.sql
    • 备份 MongoDB 数据

    如果使用 Zadig 内置的 MinIO 组件作为对象存储服务,升级前必须做好数据备份

    MinIO 数据备份操作:

    1. export NAMESPACE=<Zadig Namespace>
    2. kubectl port-forward svc/zadig-minio -n ${NAMESPACE} 9000:9000
    3. mc alias set zadig-minio http://localhost:9000 AKIAIOSFODNN72019EXAMPLE wJalrXUtnFEMI2019K7MDENGbPxRfiCYEXAMPLEKEY
    • 备份文件对象
    1. mc mirror zadig-minio/bucket/ ./bucket/

    升级操作

    安装方式:

    该安装方式下,请使用基于现有 Kubernetes 安装新中的脚本进行升级。

    安装方式:基于 Helm 命令安装

    该种安装方式下,执行以下步骤升级至 v1.15.0:

    1. helm get values <Release Name> -n <Zadig Namespace> > zadig.yaml
    1. 如果曾经对以下 values 进行修改,请额外修改对应参数
    • microservice.user.database => connections.mysql.db.user
    • microservice.config.dexdatabase => connections.mysql.db.dex
    1. 根据安装方式,执行命令升级。
    • 域名方式:
    1. export NAMESPACE=<Zadig 安装的 NAMESPACE>
    2. helm repo update
    3. helm upgrade -f zadig.yaml <release_name> koderover-chart/zadig --namespace ${NAMESPACE} --version=1.15.0
    • IP + PORT 方式:

    MySQL 数据恢复

    如果使用 Zadig 内置的 MySQL 组件,升级后需要进行数据恢复

    MySQL 数据恢复操作:

    1. kubectl port-forward svc/kr-mysql -n <Zadig 所在的 Namespace> 3306:3306
    2. mysql -h 127.0.0.1 -P 3306 -u root -p
    3. # 在 MySQL 中执行如下操作:
    4. mysql> drop database user;
    5. mysql> create database user;
    6. mysql> drop database dex;
    7. mysql> create database dex;
    8. mysql -h 127.0.0.1 -P 3306 -u root -p user < user.sql
    9. mysql -h 127.0.0.1 -P 3306 -u root -p dex < dex.sql

    MongoDB 数据恢复

    如果使用 Zadig 内置的 MongoDB 组件,升级后需要进行数据恢复

    • 数据恢复命令:
    1. kubectl port-forward svc/kr-mongodb -n <Zadig 所在的 Namespace> 27090:27017
    2. mongorestore mongodb://root:zadig@localhost:27090 <备份数据文件/目录> --drop
    • 同步数据: 下载数据同步工具 (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.15.0-upgrade-helper.yaml -n <Zadig 所在 namespace>
      1. 确保 Job 执行成功

    对象存储数据恢复

    如果使用 Zadig 内置的 MinIO 组件作为对象存储服务,升级后需要进行数据恢复操作

    • MinIO 数据恢复命令:
    1. kubectl port-forward svc/kr-minio -n <Zadig 所在 namespace> 9000:9000
    2. mc alias set zadig-minio http://localhost:9000 AKIAIOSFODNN72019EXAMPLE wJalrXUtnFEMI2019K7MDENGbPxRfiCYEXAMPLEKEY
    3. mc mirror ./bucket/ zadig-minio/bucket/
    • 对象存储设置: 登录 Zadig 系统,依次点击 系统设置 -> 对象存储 进入对象存储管理页面,编辑提供商/接入地址为 zadig-minio.${NAMESPACE}.svc.cluster.local:9000 的记录,将接入地址改为 kr-minio.${NAMESPACE}.svc.cluster.local:9000,点击保存。