Tekton Trigger 基础
  1m9rJBpbaLoS 2023年12月12日 14 0

Tekton Trigger 概述

Tekton Triggers是一个Tekton组件,它允许您从各种来源的事件中检测和提取信息,并基于该信息确定地实例化和执行TaskRuns和PipelineRuns。Tekton触发器还可以将从事件中提取的信息直接传递给TaskRuns和pipelinerun。在Kubernetes集群上安装Tekton Triggers作为Tekton Pipelines的扩展。

Tekton Triggers 关键组件

Tekton触发器包括一个运行在Kubernetes集群上的控制器服务,以及以下Kubernetes自定义资源定义(CRD),它们扩展了Tekton pipeline的功能以支持事件:

EventListener

以Pod形式运行于Kubernetes集群上,通过监听的特定端口接收Event,可以指定一个或多个Triggers。

Trigger

EventListener Pod用于监视并筛选Event时使用的筛选条件,由TriggerTemplate、TriggerBinding和Interceptor组成。

TriggerTemplate

指定当 EventListener 检测到事件时要实例化和/或执行的资源(例如 TaskRun 或 PipelineRun)。可以在资源模板中的任何位置使用的参数。

TriggerBinding

负责指定在事件上(由EventListener筛选出)感兴趣的字段,并从这些字段中取出数据传递给TriggerTemplate,而后,TriggerTemplate将相应的数据赋值给关联的TaskRun或PipelineRun资源上的参数。

ClusterInterceptor

TriggerBinding 的集群版本。

Interceptor

针对特定平台的事件处理器,在 TriggerBinding 之前运行,使您能够执行有效负载过滤、验证(使用机密)、转换、定义和测试触发条件以及其他有用的处理。一旦事件数据通过拦截器,它就会在将有效负载数据传递到 TriggerBinding 之前转到Trigger。

Tekton Triggers 工作流程

EventListener 是一个 Kubernetes 对象,用于侦听 Kubernetes 集群上指定端口上的事件。它公开了一个可寻址接收器,用于接收传入事件并指定一个或多个Triggers。sink是一个 Kubernetes 服务,在专用 Pod 内运行sink逻辑。
每个Trigger又允许您指定一个或多个 TriggerBindings(允许您从事件负载中提取字段及其值)以及一个或多个 TriggerTemplates(从相应的 TriggerBindings 接收字段值),并允许 Tekton Triggers使用该数据实例化资源,例如 TaskRuns 和 PipelineRuns。
如果您需要在将事件有效负载数据传递到 TriggerBinding 之前对其进行修改、过滤或验证,您可以选择指定一个或多个Interceptors.

Tekton Trigger 基础_触发器

Tekton Triggers 使用场景

1. 触发器监听 git commit 或 git pull request 事件。当它检测到一个事件,它会对提交的代码执行单元测试Pipeline。
2. 触发器侦听指示测试成功完成的 git Push 事件。当它检测到一个事件,它会验证测试的结果并执行构建测试代码的Pipeline。
3. 当关联的 PipelineRun 完成执行时,触发器会检查构建的结果,如果成功,则执行一个任务,将构建工件上传到您选择的 Docker registry。
4. 最后,Docker registry向 Pub/Sub 发送一个事件,这会触发一个 Pipeline,将构建工件推送到staging环境。

参考文档

https://tekton.dev/docs/triggers/



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Tekton 认证配置 下一篇: kaniko 基础
  1. 分享:
最后一次编辑于 2023年12月12日 0

暂无评论

推荐阅读
1m9rJBpbaLoS