You need to enable JavaScript to run this app.
导航

镜像源 Webhook 触发

最近更新时间2024.03.25 16:23:56

首次发布时间2024.03.25 16:23:56

持续交付可通过 Webhook 插件的形式监听火山引擎 镜像仓库 CR 的行为,一旦发生符合条件的事件,将自动触发流水线运行。本文为您介绍如何配置镜像源 Webhook 触发规则。

背景信息

对于使用火山引擎镜像仓库服务的用户,可通过配置镜像源 Webhook 触发规则,在镜像更新后自动触发流水线运行。例如:镜像更新后自动触发流水线的部署任务。

前提条件

  • 已创建流水线,具体操作请参见 创建流水线
  • 镜像仓库的事件通知功能当前为邀测状态,请 提交工单 申请。

操作步骤

步骤一:配置动态变量

自定义流水线动态变量,用于获取镜像源消息中的镜像完整地址。

  1. 进入流水线的流程编排页签。
    1. 登录 持续交付控制台
    2. 在左侧导航栏选择 工作区
    3. 单击目标工作区名称,进入当前工作区。
    4. 在左侧导航栏选择 流水线,进入流水线页面。
    5. 在流水线列表中选择目标流水线,单击 ... > 编辑,进入当前流水线的流程编排页签。
  2. 单击 变量,弹出变量设置面板。
  3. 切换至自定义变量页签,单击 添加,新增一个自定义变量。
  4. 按如下要求配置自定义变量,配置完成后单击 确定
    alt
    配置项说明
    参数输入自定义变量的名称,同一条流水线内名称唯一。建议避免与预置变量重名。本示例设置为image
    类型选择变量类型。本场景选择 字符串,由用户自行输入默认值。
    默认值输入默认使用的镜像完整地址。
    描述填写当前变量的备注信息,可以为空。
    隐私不开启隐私设置开关。
    动态开启动态设置开关。

步骤二:配置镜像源 Webhook 触发规则

  1. 在流水线的流程编排页签,在代码源&触发器面板,单击 添加 > 镜像源 Webhook 触发
  2. 按要求配置触发规则,配置完成后单击 确定
    alt
    配置项说明
    触发器名称自定义镜像源 Webhook 触发器的名称。同一流水线下的镜像源 Webhook 触发器名称不可重复。
    URL展示当前流水线的 Webhook URL,流水线通过该 URL 接收 CR Webhook 事件通知。

    过滤条件

    配置触发流水线运行的触发动作和触发条件。

    • 触发动作:选择触发流水线运行的事件。当前仅支持 镜像推送
    • 触发条件:可选配置,用于二次过滤符合条件的镜像推送事件。如不配置,则以 CR 侧配置的事件通知规则的 生效范围 为准。
      触发条件可填写地域、镜像类型、实例名、命名空间、OCI 制品仓库、Tag。当前仅支持填写一个触发条件,填写时支持 Golang 正则表达式,具体示例可参见控制台。
      例如:触发动作为镜像推送,触发条件为"data":{.*?"repository":"nginx"。表示 nginx 仓库发生镜像推送事件时将触发流水线运行。

    运行时变量

    运行时变量用于配置 CR Webhook 触发流水线运行时,动态变量的实际使用值。本场景通过运行时变量和占位符CR_PUSH_IMAGE_URL来传递 CR Webhook 消息中获取的完整镜像地址。

    • 动态变量:下拉选择步骤一设置的 image 变量。
    • 运行值:使用占位符CR_PUSH_IMAGE_URL
    备注填写当前触发器的备注信息,可以为空。

    运行时分支

    当流水线存在代码源时,支持配置运行时使用的代码分支。

    • 开启:可选择镜像源触发流水线时使用的代码分支。如果希望镜像源触发时使用非默认分支,请配置此参数。例如:同一条流水线,代码源默认分支为主分支,但希望镜像源触发特定分支,则可通过配置此参数实现。
    • 关闭:镜像源触发流水线时会使用代码源配置的默认分支。
  3. 单击 保存,保存流水线配置。

说明

您可在后续流水线部署任务中,通过 $(parameters.变量名) 引用 CR Webhook 消息中获取的完整镜像地址,对应用进行镜像升级。例如:本场景中变量名设置为image,故引用方式为 $(parameters.image)

步骤三:在 CR 侧创建镜像推送通知规则

在镜像仓库控制台,创建并启用镜像推送通知规则。具体操作可参见 创建镜像推送通知规则

注意

将步骤二获取的流水线 Webhook URL 填入 通知规则目标 URL