使用文字块标量在yaml文件中定义变量,并在kubernetes入口文件中使用

问题描述 投票:1回答:1

我已使用文字块标量在yaml文件中定义了以下变量,并希望在kubernetes入口文件中引用它们,但在输出中显示|-。

可变文件:

domain_ingress:
    annotations: |
      kubernetes.io/ingress.class: nginx-domain
      nginx.ingress.kubernetes.io/ssl-ciphers: "HIGH:!SSLv2:!SSLv3:!DH:!RSA"
      nginx.ingress.kubernetes.io/ssl-redirect: "true"
      nginx.ingress.kubernetes.io/rewrite-target: /

Kubernetes入口文件:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {{ env }}-domain-services-ingress
  annotations:
    {{ domain_ingress.annotations | to_nice_yaml }}

输出为:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: infra2-domain-services-ingress
  annotations:
    |- <why this |- is coming in output>
    kubernetes.io/ingress.class: nginx-domain
    nginx.ingress.kubernetes.io/ssl-ciphers: "HIGH:!SSLv2:!SSLv3:!DH:!RSA"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes yaml scalar
1个回答
0
投票

我建议使用头盔模板方法从变量文件中删除-pipe (|)作为您的key annotations: was followed by | : Block scalar indicator

[当字符串包含换行符时,您可以使用竖线(|)表示的文字样式来表示该字符串将跨越多行。

此方法用于而不是在ConfigMaps模板中。

请让我知道是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.