Tekton Trigger 基础
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 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/
分类:
CI/CD / tekton
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2022-12-05 制作nodejs镜像