首页 > 其他分享 >Tekton Trigger 基础

Tekton Trigger 基础

时间:2023-12-05 13:56:55浏览次数:22  
标签:Kubernetes Triggers 基础 Tekton Trigger 事件 TriggerBinding

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/

标签:Kubernetes,Triggers,基础,Tekton,Trigger,事件,TriggerBinding
From: https://www.cnblogs.com/wangguishe/p/17875467.html

相关文章

  • Tekton Trigger Interceptors 基础
    Interceptors概述Interceptor是针对特定平台的的事件处理器,在TriggerBinding之前运行。它允许您执行有效负载过滤、验证(使用秘密)、转换、定义和测试触发条件,以及实现其他有用的处理。一旦事件数据通过Interceptor,它就会在将有效负载数据传递到TriggerBinding之前转到Trigger......
  • java基础语法-pageage-构造方法-继承-多态
    java中的包-package包:包中有很多的类,根据类的功能不同,我们可以创建不同的包。包的主要功能:包的主要功能:用于分类管理包的基本语法package包的路径路径与路径之间使用点隔开:package.fatherlujing.sonlujing在一个文件中,可以没有包,或者一个包。但是不能出现两个包。......
  • linux基础命令--文件管理类
    1.cat命令简介:打印文件到屏幕上格式cat[-AbeEnstTuv][--help][--version]fileName参数说明:-n或--number:由1开始对所有输出的行数编号。-b或--number-nonblank:和-n相似,只不过对于空白行不编号。-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一......
  • 计算机基础之数据表示
    1.为什么计算机内部采用二进制表示信息?答:主要有3个方面的原因(1)二进制系统只有两个基本符号:0和1所以,它的基本符号少,易于用稳态电路实现。(2)二进制的编码、记数、运算等规则简单。(3)二进制中的0和1与逻辑命题的“真”和“假”的对应关系简单,为计算机中实现逻辑运算和程序中的逻辑判......
  • Java基础故障处理工具
    适用场景:生产环境由于可视化工具侵入系统,带来资源占用、安全问题或者规模较小未部署可视化监控平台,此时要使用基础命令行工具;给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括但不限于异常堆栈、虚拟机运行日志、垃圾......
  • 【C语言基础】float、double 浮点数类型的四舍五入问题
    简短不看版:C语言中,不能进行doublea==doubleb 这样的运算。另外,printf(".1f",&double)的时候,数据输出不同时候,可能会不一样。根本问题时float类型或者double类型的浮点数在计算机中不能精确储存。              单精度浮点型(float)存储方式比如,若我们希......
  • 黑马java基础简记
    day02——数据类型、运算符需要我们注意的是,随便写一个整数或者小数的字面量,它也是有默认数据类型的-比如23,它默认就为int类型;如果加上后缀L,则为long类型;-比如23.8,它默认为double类型;如果加上后缀F,则为float类型; //如果希望随便写一个整型字面量是long类型的,需要在其后......
  • 基础lucksheet实现前端导出excel文件
    文章参考:https://blog.csdn.net/csdn_lsy/article/details/1071797081.引入两个插件,其中exceljs负责将lucksheet的数据格式转化成excel的buffer流,file-saver负责将buffer转成blob文件流导出。npminstallexceljsnpminstallfile-saver2.代码实现constExcel=require('......
  • 电路基础
    电路基础一、电路中的概念1、能量。​ 能量(Q):某段时间内产生的能量。单位为J。​ Q=U*I*t2、电功率。​ 电功率(P):电产品在某一单位时间作的工(产生的能量,如热能)。单位W。​ 一个电路中,如果电阻很小,电压和电流很大,就会产生很大的热能。​ P=U*I (P->W,U->......
  • 记录--前端实习生的这个 bug 被用做了一道基础面试题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言测试发现了一个问题,简单描述问题就是通过函数删除一个数组中多个元素,传入的参数是一个数组索引。然后发现实际效果有时删除的不是想要的内容。具体 Bug 代码实现:constarr=[1,2,3,4,5,6,7];constrem......