前面我们都是通过创建一个TaskRun或者一个PipelineRun对象来触发任务,但是在实际的工作中更多的是开发人员提交代码过后来触发任务,这个时候就需要用到Tekton里面的Triggers概念了。
TektonTriggersWorkflowTriggers同样通过下面的几个CRD对象对Tekton进行了一些扩展:
TriggerTemplate:创建资源的模板,比如用来创建PipelineResource和PipelineRunTriggerBinding:校验事件并提取相关字段属性ClusterTriggerBinding:和TriggerBinding类似,只是是全局的Interceptor:处理事件以进行自定义验证或过滤EventListener:连接TriggerBinding和TriggerTemplate到事件接收器,使用从各个TriggerBinding中提取的参数来创建TriggerTemplate中指定的resources,同样通过interceptor字段来指定外部服务对事件属性进行预处理同样要使用TektonTriggers就需要安装对应的控制器,可以直接通过tektoncd/triggers的GitHub仓库说明进行安装,如下所示的命令(需要注意v0.14.2版本需要安装两个资源清单):
kubectlapply--filename