4.9. 使用事件监听程序保护 Webhook
作为管理员,您可以使用事件监听程序保护 Webhook。创建命名空间后,您可以通过将 operator.tekton.dev/enable-annotation=enabled
标签添加到命名空间,为 Eventlistener
资源启用 HTTPS。然后,您可以使用重新加密的 TLS 终止创建 Trigger
资源和安全路由。
Red Hat OpenShift Pipelines 中的触发器支持不安全的 HTTP 和安全 HTTPS 连接到 Eventlistener
资源。HTTPS 保护集群内部和外部的连接。
Red Hat OpenShift Pipelines 运行 tekton-operator-proxy-webhook
pod,用于监视命名空间中的标签。当您将标签添加到命名空间时,webhook 在 EventListener
对象上设置 service.beta.openshift.io/serving-cert-secret-name=<secret_name>
注解。这反过来会创建 secret 和所需的证书。
service.beta.openshift.io/serving-cert-secret-name=<secret_name>
另外,您可以将创建的 secret 挂载到 Eventlistener
pod 中,以保护请求。
4.9.1. 提供与 OpenShift 路由的安全连接
要使用重新加密的 TLS 终止创建路由,请运行:
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>
或者,您可以创建一个重新加密的 TLS 终止 YAML 文件来创建安全路由。
重新加密 TLS 终止 YAML 示例,以创建安全路由
apiVersion: route.openshift.io/v1 kind: Route metadata: name: route-passthrough-secured 1 spec: host: <hostname> to: kind: Service name: frontend 2 tls: termination: reencrypt 3 key: [as in edge termination] certificate: [as in edge termination] caCertificate: [as in edge termination] destinationCACertificate: |- 4 -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE-----
您可以运行 oc create route reencrypt --help
命令显示更多选项。
4.9.2. 使用安全 HTTPS 连接创建示例 EventListener 资源
本节使用 pipelines-tutorial 示例来演示使用安全 HTTPS 连接创建示例 EventListener 资源。
流程
从 pipelines-tutorial 存储库中的 YAML 文件创建
TriggerBinding
资源:$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/01_binding.yaml
从 pipelines-tutorial 存储库中的 YAML 文件创建
TriggerTemplate
资源:$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/02_template.yaml
直接从 pipelines-tutorial 存储库创建
Trigger
资源:$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/03_trigger.yaml
使用安全 HTTPS 连接创建
EventListener
资源:添加一个标签,在 Eventlistener 资源中启用安全
HTTPS
连接:$ oc label namespace <ns-name> operator.tekton.dev/enable-annotation=enabled
从 pipelines-tutorial 存储库中的 YAML 文件创建
EventListener
资源:$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/04_event_listener.yaml
创建带有重新加密 TLS 终止的路由:
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>