本文主要介绍在 Zadig 上如何进行版本管理。

K8s YAML 部署项目

版本交付

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

版本交付

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

版本交付

点击一级菜单交付中心 -> 版本管理 -> 选择项目,查看项目版本列表,点击可以直接查看具体交付信息,本次工作流的所有详细信息都收集在此,包括镜像信息、包信息、服务的启动顺序等等,具体如下图所示:

版本交付 版本交付

可执行版本发布,用现在的版本镜像更新选择的环境:

版本交付

版本回溯

您还可以通过交付中心的基础镜像恢复某一个时间点的环境。

  • 进入项目集成环境,点击创建环境,选择某一个交付版本点击确定即可全量回溯版本到当时的环境,如下图所示:

版本交付

Helm Chart 部署项目

版本交付

  • 进入 交付中心 -> 版本管理,选择对应的项目,点击创建版本

版本交付

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

版本交付

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

版本交付

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

版本交付

  • 第三步选择交付物推送的仓库。

版本交付

Helm 仓库需事先集成,具体配置参考 Helm 仓库

  • 点击完成后,所选的服务配置(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镜像名称

查看版本详情

  • 进入 交付中心 -> 版本管理,选择对应的项目、点击版本,可查看版本详情,版本所有详细信息包括 Chart 信息、镜像信息等等,如下图所示。

版本交付