Tekton Triggers(触发器)

半兽人 发表于: 2022-01-17   最后更新时间: 2022-01-27 19:10:35  
{{totalSubscript}} 订阅, 1,578 游览

Tekton Triggers(触发器)

Tekton Triggers是一个Tekton组件,允许你从各种来源的事件中检测和提取信息,并根据这些信息确定性地实例化和执行TaskRunsPipelineRuns。Tekton Triggers还可将从事件中提取的信息直接传递给TaskRunsPipelineRuns。你可以在Kubernetes集群上安装Tekton Triggers,作为Tekton Pipelines的扩展。

Triggers是如何工作的?

Tekton Triggers 由在 Kubernetes 集群上运行的控制器服务以及以下 Kubernetes 自定义资源定义 (CRD) 组成,后者将 Tekton Pipelines 的功能扩展到支持事件:

  • EventListener - 监听Kubernetes集群上指定端口的事件。指定一个或多个Triggers

  • Trigger - 指定当EventListener检测到一个事件时会发生什么。一个Trigger指定一个TriggerTemplate,一个TriggerBinding,以及可选的一个Interceptor(拦截器)

  • TriggerTemplate - 指定资源的蓝图,如TaskRunPipelineRun,当你的EventListener察觉到一个事件时,你想实例化和/或执行。它暴露了一些参数,你可以在你的资源模板的任何地方使用。

  • TriggerBinding - 指定事件负载中的字段,你想从中提取数据,并在相应的TriggerTemplate中填充提取的值。然后你可以使用TriggerTemplate中的填充字段来填充相关TaskRunPipelineRun中的字段。

  • ClusterTriggerBinding - 一个集群范围内的TriggerBinding版本,对于在你的集群内重复使用特别有用。

  • Interceptor - 指定平台的“catch-all(捕获所有)”事件处理器,在TriggerBinding之前运行,使你能够进行过滤、验证(使用secret)、转换、定义和测试触发条件以及其他有用的处理。一旦事件数据通过拦截器,在你将负载数据传递给TriggerBinding之前,它会进入Trigger。

triggerflow

我可以用Triggers做什么?

比如,你可以用触发器实现以下CI/CD工作流程。

  1. 触发器监听git commitgit pull请求事件。当它察觉到一个事件时,它会在提交的代码上执行一个单元测试`Pipeline'。

  2. 触发器监听一个git push事件,表示测试成功完成。当它探测到一个事件时,它会验证测试的结果并执行一个Pipeline来构建测试的代码。

  3. 当关联的PipelineRun完成执行时,Triggers检查构建的结果,如果成功的话,执行一个Task,将构建的artifacts(如docker镜像)上传到你选择的Docker注册中心。

  4. 最后,Docker注册中心向Pub/Sub发送一个事件,触发Pipeline,将构建的镜像推送到临时环境。

更新于 2022-01-27

查看Tekton更多相关的文章或提一个关于Tekton的问题,也可以与我们一起分享文章