Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 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 权限管理,本次版本中针对生产/预发布环境做如下业务调整,请详细阅读知晓后再升级。

变更范围

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

权限变更

影响范围

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

如何操作修复

项目管理员在升级后通过协作模式重新配置所有环境的权限,实现细粒度环境权限管理,参考:协作模式。

版本升级过程

注意事项

  • 本次版本有业务变更,请详细阅读 业务变更声明 后再继续升级操作
  • 如果当前系统版本 < v1.14.0,请先升级到 v1.14.0,具体升级过程参见 v1.14.0 升级方式,再按照以下方式升级到 v1.15.0
  • 本次版本升级涉及基础组件更新,

数据库备份

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

高可用数据库

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

  1. 数据库备份命令:
  • 备份 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
  1. 数据库恢复命令:
  • 恢复 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 官方文档,安装 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:

  1. 执行以下命令后查看 zadig.yaml 文件,如果文件中包含镜像信息(即:tag:a.b.c),需要手动删除。
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. 根据安装方式,执行命令升级。
  • 域名方式:
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
  • 同步数据: 下载数据同步工具,执行升级 Job。
    1. 最后一行脚本 value: {{ default "http" .Values.protocol }}://{{- include "zadig.endpoint" . }}修改为系统实际访问域名/IP
    2. mongodb://zadig-mongodb:27017 修改为对应的连接串
    3. -d下面一行的zadig 修改为对应的 dbname
    4. 执行如下命令
    kubectl apply -f 1.15.0-upgrade-helper.yaml -n <Zadig 所在 namespace>
    
    1. 确保 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,点击保存。
Prev
v1.16.0 Release Notes
Next
v1.14.0 Release Notes