前面我们都是通过手动创建一个 TaskRun
或者一个 PipelineRun
对象来触发任务。但是在实际的工作中更多的是开发人员提交代码过后来触发任务,这个时候就需要用到 Tekton 里面的 Triggers 了。
Triggers 同样通过下面的几个 CRD 对象对 Tekton 进行了一些扩展:
- TriggerTemplate: 创建资源的模板,比如用来创建 PipelineResource 和 PipelineRun
- TriggerBinding: 校验事件并提取相关字段属性
- ClusterTriggerBinding: 和 TriggerBinding 类似,只是是全局的
- EventListener: 连接 TriggerBinding 和 TriggerTemplate 到事件接收器,使用从各个 TriggerBinding 中提取的参数来创建 TriggerTemplate 中指定的 resources,同样通过
interceptor
字段来指定外部服务对事件属性进行预处理