制品配置

CODING 持续部署的制品就是引用某个资源的 JSON 对象。持续部署支持多种云服务,而制品可以引用许多不同的资源类型,例如:

  • Docker 镜像
  • Git 仓库中的文件
  • Kubernetes 资源对象等

请知悉 CODING CD 的制品只是对资源的引用,并非资源本身,此处的资源可以是 CODING CD 支持的任一类型。从另一角度来看,制品是对资源信息进行描述的 JSON 对象。

制品格式

例如,CODING 制品库存储的 Docker 镜像可以使用如下的 JSON 配置并将其引用为 CODING CD 的制品:

{
  "type": "docker/image",
  "reference": "lhkprod-docker.pkg.coding.net/project/repo/image@sha256:29fee8e284",
  "name": "lhkprod-docker.pkg.coding.net/project/repo/image",
  "version": "sha256:29fee8e284"
}

启动所需制品

在部署流程的配置阶段,可以先声明部署流程执行过程中需要使用的制品,这样的制品被称为启动所需制品,CODING CD 将触发部署流程携带的制品(如:远程 Git 仓库中的文件)和启动所需制品处声明的制品(如:path/manifeet.yaml)进行对比,如果触发部署流程携带的制品启动所需制品匹配,触发部署流程携带的制品将会和启动所需制品绑定,阶段可以使用绑定(匹配成功)的制品。

将 CODING 代码仓库文件配置为启动所需制品,制品别名默认由 CODING CD 自动生成,也支持自定义。

制品匹配规则

配置部署流程启动所需制品时,可以在【制品匹配规则】处声明制品匹配条件,将其与触发部署流程携带的制品信息(如:Git 仓库触发携带的制品)进行比较。通过配置【制品匹配规则】,您可以在云账号关联的的多个制品(例如存储在 Git 仓库的多个 manifest 文件)中过滤出最终需要的制品。只有当触发器携带的制品信息与【制品匹配规则】配置的条件匹配时,才能成功触发部署流程执行。

如果制品匹配失败

当【制品匹配规则】配置的制品在触发器中没有提供或匹配不到时,可以使用【如果制品匹配失败】中上一次部署流程执行的制品或默认制品。

  • 使用前一部署流程制品:CODING CD 会保存每一次部署流程执行的制品信息,当【使用前一部署流程制品】被勾选后,如果【制品匹配规则】配置的制品匹配失败,将使用上一次部署流程执行的制品。

  • 使用默认制品:例如 CRON(定时触发)类型的触发器不提供制品信息时,这时可以使用默认制品。

当【使用前一部署流程制品】和【使用默认制品】都被启用时,将优先使用【使用前一部署流程制品】。

部署流程支持的制品类型

在保留 Spinnaker 部分原生制品类型的基础上,CODING CD 扩充了 CODING docker 仓库、Tencent TCR、CODING helm 等丰富的制品类型。

Docker 镜像

Docker 镜像 制品类型支持 CODING docker 仓库和外部仓库。

CODING docker 仓库

获取 cd-demo 项目下,cd-demo 制品仓库中的 flaskapp 镜像作为部署流程制品,版本规则 v1.* 表示所有以 v1 开头命名的版本或 tag 才会成功匹配制品。

字段说明:

字段 说明
项目 列出登录账号加入的所有项目
仓库 列出项目下的所有 docker 类型制品仓库
镜像 列出仓库下的所有镜像
版本规则 支持正则表达式,留空的含义与.*一致,不对镜像版本做限制

外部仓库

字段 说明
路径规则 支持正则表达式,留空的含义与.*一致,不对镜像路径做限制
版本规则 支持正则表达式,留空的含义与.*一致,不对镜像版本做限制

Git 仓库文件

CODING 代码库

获取 cd-demo 项目下,cd-demo 代码仓库中的 k8s/service.yaml 文件作为部署流程制品,版本规则 release.* 表示所有以 release 开头命名的分支或 tag 才会成功匹配制品。

Github

Github 代码库的支持需要提前在【项目设置】中关联代码库。

获取 cd-demo 项目下,与 github 关联的代码仓库(coding-cd-demo)中的 api/api.conf 文件作为部署流程制品,版本规则 v1.* 表示所有以 v1 开头命名的分支或 tag 才会成功匹配制品。如果匹配失败,使用上一次部署流程执行的 api/api.conf 制品。

Gitlab

跟 github 一样,需要提前在【项目设置】中关联代码库


获取 cd-demo 项目下,与 gitlab 关联的代码仓库(gitlab-cd-demo)中的 config.ini 文件作为部署流程制品,版本规则 dev.* 表示所有以 dev 开头命名的分支或 tag 才会成功匹配制品。如果匹配失败,使用【如果制品匹配失败】配置的默认制品(代码仓库的全局配置文件 config.ini)。

Kubernetes 资源

字段 说明
资源类型 支持 ConfigMap、Deployment、ReplicaSet 和 Secret 四种资源类型
云账号 根据云账号确定资源所在的 Kubernetes 集群
Reference 资源的 URI 地址

自定义类型

字段 说明
类型 制品类型
名称 制品名称
版本 制品版本(用于区分类型和名称都相同的制品)
地址 对于不同资源类型含义不同(例如:腾讯云实例对应 region,Kubernetes 资源对应 namespace
索引 制品的 URI
上一篇触发器配置
文档是否对您有用?
感谢反馈有用
感谢反馈没用