使用 helm 在 openshift 上配置 TLS

Configuring TLS on openshift using helm

我正在尝试在 openshift 上使用边缘终止配置 TLS,在 values.yaml 中传递 TLS 证书和私钥并在 route.yaml 文件中引用它,当我执行 helm chart 创建时将证书从 values.yaml 复制到 route.yaml 文件时,由于不正确的缩进和换行符导致路由失败。

下面是 values.yaml 文件,我从中引用了 route.yaml 文件中的证书。这样做的更好方法是什么?如何使用适当的缩进从 values.yaml 传递 tls 证书和私钥。

Values.yaml

route:
  Enabled: true
  annotations:
    haproxy.router.openshift.io/cookie_name: SESSION_XLD
    haproxy.router.openshift.io/disable_cookies: "false"
    haproxy.router.openshift.io/rewrite-target: /
  path: /
  hosts:
    - www.example.com
  tls:
    key:
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    certificate:
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    caCertificate:
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    insecureEdgeTerminationPolicy: Redirect

route.yaml

{{- if $.Values.route.tls }}
  tls:
    termination: edge
  {{- with $.Values.route.tls }}
    key: |
      {{ .key }}
    certificate: |
      {{ .certificate }}
    caCertificate: |
      {{ .caCertificate }}
    insecureEdgeTerminationPolicy: {{ .insecureEdgeTerminationPolicy }}
  {{- end }}
{{- end }}

尝试使用 | 将每个证书传递给 route.yaml 以保留 Values.yaml 中的缩进,如下所示如何?

  tls:
    key: | <--- add
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    certificate: | <--- add
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----
    caCertificate: | <--- add
      -----BEGIN CERTIFICATE-----
      [...]
      -----END CERTIFICATE-----