【问题标题】:Define variable in yaml file using literal block scalar and use in kubernetes ingress file使用文字块标量在 yaml 文件中定义变量并在 kubernetes 入口文件中使用
【发布时间】:2020-03-13 13:13:49
【问题描述】:

我已经使用文字块标量在 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: /

【问题讨论】:

  • 变量文件是否有尾随换行符?
  • 请提供信息您如何模板化您的 yaml 文件(您使用什么工具)?

标签: kubernetes yaml scalar


【解决方案1】:

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

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

这种方法用于 f.e.而是在 ConfigMaps 模板中。

如果有帮助请告诉我。

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 2021-12-07
    • 2021-04-25
    • 2020-07-07
    • 1970-01-01
    • 2016-11-19
    • 2018-08-04
    • 1970-01-01
    相关资源
    最近更新 更多