Tekton Trigger 介绍

背景

Tekton 的介绍请参考Tekton Pipeline 实战.

通常, CI/CD 事件应该包含如下信息:

  • 确定事件的类型(比如 GitHub Push, GitLab Issue, Docker Hub Webhook 等)
  • 可从特定管道访问并映射到特定管道 (从事件负载中获取 SHA 信息, 然后在管道中使用)
  • 准确地触发管道 (基于有效负载值触发管道)

Tekton API 的设计分离了配置(比如 PipelineRun VS Pipeline), 保证了 step 可以被重用. 但是没有提供动态封装配置的机制来生成资源(尤其是 PipelineRun 和 PipelineResource). Triggers 通过下面的 CRDs 在架构上对 Tekton 进行了扩展:

  • TriggerTemplate: 创建资源的模板(比如用来创建 PipelineResource 和 PipelineRun)
  • TriggerBinding: 校验事件并提取负载字段
  • EventListener: 连接TriggerBindingTriggerTemplate到可寻址的端点(事件接收器). 使用从各个 TriggerBinding中提取的参数来创建TriggerTemplate中指定的 resources. 同样通过 interceptor字段来指定外部服务来对事件负载进行预处理.
  • ClusterTriggerBinding: cluster级别的TriggerBinding

安装

kubectl apply --filename https://storage.googleapis.com/tekton-releases/triggers/latest/release.yaml

检查新增的 CRD: kubectl api-resources | grep tekton. Triggers 引入了 3 个 CRD: TriggerTemplate, TriggerBinding,EventListener.

检查新增的 deployment: tekton-triggers-webhook, tekton-triggers-controller.


文章同步发送到公众号:云编码 (微信号:sevenfeet)。

qrcode

comments powered by Disqus