v1.18.0 Release Notes

2023 年 8 月 11 日,Zadig 正式发布 v1.18.0 版本。

功能列表

工作流

  • 自定义工作流支持失败重试
  • 自定义工作流部署任务支持搜索镜像
  • 自定义工作流支持代码信息传递
  • 自定义工作流测试任务支持代码库信息及环境变量
  • 自定义工作流通用任务支持 PROJECT 变量
  • 自定义工作流部署任务执行支持全选服务组件
  • 产品工作流交付物部署任务支持全选服务组件
  • 自定义工作流部署任务在未开始执行时支持显示服务配置
  • 工作流触发器配置构建任务默认不选择服务组件
  • 工作流详情中的 Gerrit commit 点击后可跳转到 review 页面
  • 工作流自定义任务的配置支持从其他类型的代码源同步
  • 代码扫描添加可用变量提示
  • 代码扫描触发器支持配置多个代码仓库
  • 构建/测试中文件存储和二进制存储步骤支持代码库信息内置变量
  • 工作流列表的 Hover 功能支持显示完整的工作流名称

性能

  • 提升工作流构建任务配置页面的加载效率
  • 提升项目列表页面的加载效率
  • 提升使用模版构建页面的加载效率
  • 提升工作流执行页面的加载效率
  • 提升环境页面的加载效率

环境

  • K8s YAML 项目中部署服务时去除 dry run 检查
  • K8s Helm Chart 项目中部署服务时去除 dry run 检查
  • 改进 K8s YAML 项目中的服务变量易用性
  • 当环境中的镜像从未被更新时,支持通过修改服务配置来实现镜像更新

系统

  • 系统安全与登录密码校验增强
  • 操作日志记录权限管理相关操作
  • JIRA 集成支持使用 Access Token 方式
  • 新增创建项目权限
  • 效能洞察支持选择项目
  • 支持根据项目标识/项目名称/拼音对项目进行模糊搜索
  • 支持按照镜像创建时间对镜像排序
  • 直连模式接入集群时不再安装 hub-agent
  • 下线 Resource Sever 组件,提升系统可维护性
  • 系统安装过程增加用户初始化

体验和交互优化

  • 改进 Zadig 升级后强刷页面体验
  • 项目中没有环境资源时增加新建环境入口
  • 构建代码信息输入操作交互优化
  • 工作流执行页面交互优化
  • 服务 YAML 编辑框可自适应调节优化
  • 自定义工作流日志滚动交互优化
  • 自定义工作流变量来源选择项显示选中状态
  • 自定义工作流部署任务变量配置优化
  • 自定义工作流任务详情页面展示优化
  • 环境中服务列表滚动交互优化
  • 效能洞察页面交互优化
  • 托管项目配置服务时 tooltip 位置优化
  • 用户列表信息显示优化
  • 改进新建集群的交互体验
  • 系统集成页面增强交互体验
  • 删除项目后默认不删除命名空间和服务
  • 删除环境后默认不删除命名空间和服务
  • Helm Chart 项目部署任务服务组件来自前置任务预览中镜像变更说明
  • 执行自定义工作流通用任务增加代码库信息显示范围

问题修复

  • 修复编辑工作流视图报错问题
  • 修复构建模板左侧框无法向右拖动问题
  • 修复无权限时构建模板报 403 错误的问题
  • 修复普通用户访问系统设置权限的问题
  • 修复弹窗会被误关闭的问题
  • 修复 Helm Chart 部署任务预览不精准问题
  • 修复定时/webhook 触发工作流 GitLab token 偶发失效问题
  • 修复环境中更新服务 YAML 没有变化时不重启 Workload 的问题
  • 修复 Chart Values 中包含 “.” 变量引起的预览失败的问题
  • 修复 Chart 视图滚动条异常的问题
  • 修复服务部署超时时间设置未生效问题
  • 修复服务里更改 YAML 模板没有生效问题
  • 修复测试任务日志显示不全的问题
  • 修复工作流任务因集群网络不稳定导致执行失败的问题
  • 修复产品工作流任务因网络不稳定偶发排队的问题
  • 修复产品工作流和自定义工作流镜像生成规则不一致问题
  • 修复自定义工作流失败时未发送通知的问题
  • 修复自定义工作流任务准备环境阶段持续时间未显示问题
  • 修复自定义工作流测试任务无法配置自定义变量的问题
  • 修复自定义工作流中 {{.workflow.task_id}} 变量无效的问题
  • 修复自定义工作流配置构建时小屏下滚动添加服务按钮未显示问题
  • 修复执行工作流页面因服务组件选择变更导致执行参数被重置的问题
  • 修复执行自定义工作流时其他代码源默认分支信息丢失的问题
  • 修复执行自定义工作流跳过一个阶段无法失败重试问题
  • 修复基于模板创建服务并开启自动同步后仍能修改服务配置的问题
  • 修复主机场景引导流程中配置服务的主机资源时显示 undefined 的问题
  • 修复主机项目产品工作流无法配置新添加服务的问题

业务变更声明

服务变量变更

注意

为使 K8s YAML 服务变量功能更易用,v1.18.0 版本中下线了服务变量可见性功能。如果你有使用服务变量功能,升级前请注意以下事项。

  1. 如果服务配置中有使用嵌套变量,请确保多个变量的可见性保持一致,比如下例中,ports_config[].protocolports_config[].container_port 的可见性需要一致。

点击查看

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. spec:
  4. spec:
  5. containers:
  6. - name: $T-Service$
  7. ports:
  8. {{- range .ports_config}}
  9. - protocol: {{.protocol}}
  10. containerPort: {{.containerPort}}
  11. {{- end}}
  12. ...更多内容省略...
  1. 服务配置中不可见的服务变量,在环境的全局变量中显式声明出来。

服务变量的可见性配置可参考文档:变量设置

内置软件包变更

内置软件包的下载地址改为官方地址,新增以下内置软件包:

  • node 12.22.12node 14.21.3node 16.20.2node 18.17.1
  • java 1.8.20java 1.11.0.2
  • go 1.20.7

部分版本较老的软件包下线:

  • java 1.6.6java 1.7.8java 1.9.0.1java 1.10.0.2
  • ginkgo 1.6.0ginkgo 2.2.0ginkgo 2.3.1ginkgo 2.4.0
  • go 1.8.5go 1.9.7go 1.10.2go 1.11.5go 1.12.9
  • node 8.11.4node 8.15.0node 16.18.1node 18.12.1
  • jMeter 3.2jMeter 5.4.3
  • php 5.5
  • dep 0.4.1

注意

内置软件包原始下载地址中的资源将会于 2023.10.31 删除,如果有使用需要,请参考文档 软件包管理 进行配置。

版本升级过程

注意

如果当前系统版本 < v1.17.0,请先升级到 v1.17.0,具体升级过程参见 v1.17.0 升级方式,再按照以下方式升级到 v1.18.0

数据库备份

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

  1. 数据库备份命令:
  • 备份 MongoDB 数据
  1. mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
  • 备份 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

升级操作

请根据不同的安装方式执行对应的升级步骤。

安装方式:All in One 一键安装模式基于现有 Kubernetes 安装

这两种安装方式下,均使用基于现有 Kubernetes 安装新中的脚本进行升级。

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

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

  1. 执行以下命令备份安装参数并保存为 zadig.yaml 文件。
  1. helm get values <Release Name> -n <Zadig Namespace> > zadig.yaml
  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.18.0
  • IP + PORT 方式:
  1. export NAMESPACE=<Zadig 安装的 NAMESPACE>
  2. export PORT=<30000 - 32767 任一端口,与初次安装时使用的端口不同即可>
  3. helm repo update
  4. helm upgrade -f zadig.yaml <release_name> koderover-chart/zadig --namespace ${NAMESPACE} \
  5. --set gloo.gatewayProxies.gatewayProxy.service.httpNodePort=${PORT} \
  6. --set gloo.gatewayProxies.gatewayProxy.service.type=NodePort --version=1.18.0

[可选]升级后操作

新版本中 resource-server 组件下线,挂接集群的 koderover-agent 命名空间下该组件已不承担 Zadig 相关的实际工作,手动删除即可。