service.beta.openshift.io/serving-cert-secret-name=<secret_name>
作为管理员,您可以使用事件监听器保护 Webhook。创建命名空间后,您可以通过向命名空间添加operator.tekton.dev/enable-annotation=enabled
标签来为EventListener
资源启用 HTTPS。然后,您可以使用重新加密的 TLS 终止创建Trigger
资源和安全路由。
Red Hat OpenShift Pipelines 中的触发器支持与EventListener
资源的不安全 HTTP 和安全 HTTPS 连接。HTTPS 可保护集群内部和外部的连接。
Red Hat OpenShift Pipelines 运行一个tekton-operator-proxy-webhook
Pod,该 Pod 监视命名空间中的标签。当您向命名空间添加标签时,Webhook 会在EventListener
对象上设置service.beta.openshift.io/serving-cert-secret-name=<secret_name>
注释。这反过来又会创建密钥和所需的证书。
service.beta.openshift.io/serving-cert-secret-name=<secret_name>
此外,您可以将创建的密钥挂载到EventListener
Pod 中以保护请求。
要创建具有重新加密 TLS 终止的路由,请运行
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>
或者,您可以创建一个重新加密 TLS 终止 YAML 文件来创建一个安全路由。
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: route-passthrough-secured (1)
spec:
host: <hostname>
to:
kind: Service
name: frontend (1)
tls:
termination: reencrypt (2)
key: [as in edge termination]
certificate: [as in edge termination]
caCertificate: [as in edge termination]
destinationCACertificate: |- (3)
-----BEGIN CERTIFICATE-----
[...]
-----END CERTIFICATE-----
1 | 对象的名称,限制为 63 个字符。 |
2 | termination 字段设置为reencrypt 。这是唯一必需的 TLS 字段。 |
3 | 这是重新加密所必需的。destinationCACertificate 字段指定一个 CA 证书来验证端点证书,从而保护从路由器到目标 Pod 的连接。在以下任一情况下,您可以忽略此字段
|
您可以运行oc create route reencrypt --help
命令以显示更多选项。
本节使用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>