This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.3.2.2.6. 触发器
使用触发器(Trigger)和 Pipelines 一起创建一个完整的 CI/CD 系统,其中 Kubernetes 资源定义整个 CI/CD 执行。触发器捕获外部事件,如 Git 拉取请求,并处理它们以获取关键信息。将这个事件数据映射到一组预定义的参数会触发一系列任务,然后创建和部署 Kubernetes 资源并实例化管道。
例如,您可以使用 Red Hat OpenShift Pipelines 为应用程序定义 CI/CD 工作流。管道必须启动,才能在应用程序存储库中使任何新的更改生效。通过捕获和处理任何更改事件,并通过触发器部署新镜像的管道运行来自动触发这个过程。
触发器由以下主要资源组成,它们可一起组成可重复使用、分离和自力更生的 CI/CD 系统:
TriggerBinding
资源验证事件,从事件有效负载中提取字段,并将它们保存为参数。以下示例显示了
TriggerBinding
资源的代码片段,它从接收的事件有效负载中提取 Git 存储库信息:Copy to Clipboard Copied! Toggle word wrap Toggle overflow TriggerTemplate
资源充当创建资源的方式标准。它指定了TriggerBinding
资源中参数化数据的方式。触发器模板从触发器绑定接收输入,然后执行一系列操作来创建新管道资源,并启动新管道运行。以下示例显示了
TriggerTemplate
资源的代码片段,它使用您刚创建的TriggerBinding
资源提供的 Git 存储库信息创建一个管道运行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Trigger
资源连接TriggerBinding
和TriggerTemplate
资源,这个Trigger
资源在EventListener
规格中被引用。以下示例显示了一个
Trigger
资源的代码片段,名为vote-trigger
,它连接TriggerBinding
和TriggerTemplate
资源。Copy to Clipboard Copied! Toggle word wrap Toggle overflow EventListener
资源提供一个端点或事件接收器(sink),用于使用 JSON 有效负载侦听传入的基于 HTTP 的事件。它从每个TriggerBinding
资源提取事件参数,然后处理此数据以按照对应的TriggerTemplate
资源指定的 Kubernetes 资源创建 Kubernetes 资源。EventListener
资源还使用事件interceptors(拦截器)
在有效负载上执行轻量级事件处理或基本过滤,这可识别有效负载类型并进行自选修改。目前,管道触发器支持四种拦截器: Webhook Interceptors、GitHub Interceptors、GitLab Interceptors 和 Common Expression Language(CEL)Interceptors。以下示例显示了一个
EventListener
资源,它引用名为vote-trigger
的Trigger
资源。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat OpenShift Pipelines 中的触发器支持 HTTP(不安全)和 HTTPS(安全 HTTP)连接到 Eventlistener
资源。使用安全 HTTPS 连接,您可以在集群内部和外部获得端到端安全连接。创建命名空间后,您可以通过将 operator.tekton.dev/enable-annotation=enabled
标签添加到命名空间,然后创建一个 Trigger
资源以及使用重新加密 TLS 终止的安全路由,从而为 Eventlistener
资源启用这个安全 HTTPS 连接。