1. 授权认证
  2. 获取用户个人信息
  3. 项目协同
  4. 代码托管
  5. 持续集成
  6. 制品仓库
  7. 测试管理
  1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

制品配置

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

上一篇触发器配置
最近更新
感谢反馈有用
感谢反馈没用