本文主要介绍如何在 Zadig 上进行 K8s YAML 项目及 K8s Helm Chart 项目的版本管理。

K8s YAML 项目

创建版本

执行交付物部署工作流可进行版本交付,选择服务镜像添加版本信息,具体配置如下图所示:

版本交付

点击启动任务,系统收集交付信息,任务详情内可查看版本信息:

版本交付

工作流任务成功执行完毕后,可在版本管理中对版本进行查阅:

版本管理

版本详情

在版本管理列表中点击版本可以查看具体交付信息,包括创建该版本的工作流任务、交付的镜像信息、包信息、服务配置及启动顺序等等:

版本交付

点击版本发布,可将版本中包含的镜像更新到所选环境中:

版本交付

版本回溯

创建环境时可指定服务版本实现版本回溯:创建环境 -> 创建方式选择回溯并选择要回溯的版本,点击确定使用这个版本创建环境。

版本交付

K8s Helm Chart 项目

创建版本

  • 进入 Helm 项目 -> 版本管理,点击创建版本

版本交付

  • 进入创建版本流程,第一步填写基本信息。

版本交付

  • 第二步选择环境和服务,并且对所选服务配置做少量修改,以满足线上生产环境服务配置需求。

版本交付

如果需要统一修改所有服务 values 文件中的变量值可以使用全局变量。如下图所示,填写全局变量,点击应用,所有服务 values 文件中的对应变量值统一被修改成全局变量中设置的变量值。

版本交付

  • 第三步选择交付物推送的仓库,并按需填写 Chart 版本号,配置镜像 Tag。

Helm 仓库需事先集成,具体配置参考 Helm 仓库
在配置镜像 Tag 时,若一个 Chart 中包括多个服务组件,可使用应用全部来快速设置所有服务组件的镜像 Tag。

版本交付

  • 点击完成后,所选的服务配置(Chart)和镜像将被推送到对应仓库。

版本详情

  • 点击版本可查看版本详情,包括可下载的完整 Chart 信息、镜像信息等等,如下图所示。

版本交付

Hook 外部系统

成功创建版本后,Zadig 支持自动 Hook 外部系统,外部系统接收请求后,可以结合自身情况自定义一些操作。具体配置方式如下:

  1. 集成外部系统,具体集成方式参见其他外部系统集成
  2. 在项目-版本管理中开启Hook 配置,如下图所示。

hook 配置

完成配置后,创建版本,成功推送镜像和 Chart 后自动 Hook 外部系统。具体 Payload 信息如下:

  1. {
  2. "project_name": "helm-test",
  3. "version": "v1.1",
  4. "status": "success",
  5. "error": "",
  6. "start_time": "1640249525",
  7. "end_time": "1640249825",
  8. "charts": [
  9. {
  10. "chart_name": "gss-1",
  11. "chart_version": "1.1",
  12. "chart_url": "https://technosophos.github.io/tscharts/gss-1-1.1.tgz",
  13. "images": [
  14. {
  15. "service_module": "go-sample-site",
  16. "image": "ccr.ccs.tencentyun.com/trial/go-sample-site:20211215150832-27-main"
  17. },
  18. {
  19. "service_module": "go-sample-site-2",
  20. "image": "ccr.ccs.tencentyun.com/trial/go-sample-site:20211215150832-27-main"
  21. }
  22. ]
  23. },
  24. {
  25. "chart_name": "gss-2",
  26. "chart_version": "1.2",
  27. "chart_url": "https://technosophos.github.io/tscharts/gss-1-1.2.tgz",
  28. "images": [
  29. {
  30. "service_module": "go-sample-site",
  31. "image": "ccr.ccs.tencentyun.com/trial/go-sample-site:20211215150832-27-main"
  32. },
  33. {
  34. "service_module": "go-sample-site-2",
  35. "image": "ccr.ccs.tencentyun.com/trial/go-sample-site:20211215150832-27-main"
  36. }
  37. ]
  38. }
  39. ]
  40. }

返回说明

参数名类型描述
project_namestring项目名称
versionstring交付版本号
statusstring任务状态
start_timestringUnix 时间戳格式的版本创建时间
end_timestringUnix 时间戳格式的版本创建完成时间
charts[]chartsChart 信息
Chart 参数说明
参数名类型描述
chart_namestringChart 名称
chart_versionstringChart 版本号
chart_urlstringChart 下载链接
images[]Image镜像信息
images 参数说明
参数名类型描述
service_modulestring服务组件名称
imagestring镜像名称