kubernetes 如何将if语句拆分到多行上

zengzsys  于 2022-12-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(126)

我正在尝试格式化我的yml使其更具可读性。我有一个if语句,它真的很长,有一堆and/or,我希望能够将它分散到多行中,所以沿着以下几行

{{-if or
   (eq 'abc' .values.foo)
   (eq 'def' . values.bar)
}}
Def:'works'
{{- end}}

但是这会因为if语句不完整而引发错误。有没有什么特殊的字符或语法可以用来实现上述功能?

pgvzfuti

pgvzfuti1#

helm支持不使用特殊字符的直接换行符。
{{if之间缺少空格。
.values之间有一个额外的空格。
字符串常量需要双引号。
演示:
values.yaml

foo: xxx
bar: yyy

模板/cm.Yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
  labels:
    {{- include "test.labels" . | nindent 4 }}
data: 
  cfg: |-
    {{- if or
      (eq "abc" .Values.foo)
      (eq "def" .Values.bar)
    }}
    if
    {{- else }}
    else
    {{- end }}

命令

helm template --debug test .

输出

apiVersion: v1
kind: ConfigMap
metadata:
  name: test
data: 
  cfg: |-
    else

相关问题