如何在值文件中创建一个可选块,然后在模板中引用它?
例如,说我有一个类似于以下内容的值文件:
# values.yaml
foo:
bar: "something"
然后我有一个看起来像这样的头盔模板:
{{ .Values.foo.bar }}
如果我想将值文件中的foo.bar设为可选,该怎么办?如果值中不存在foo
键,则会引发错误。
我已经尝试添加if是否有条件。但是,如果缺少foo
键,此操作仍将失败:
{{ if .Values.foo.bar }}
{{ .Values.foo.bar }}
{{ end }}
任何想法都值得赞赏。
大多数图表将默认将父对象设置为values.yaml
中的一个空映射,因此它始终存在。
foo: {}
然后{{ if .Values.foo.bar }}
起作用。
如果不可能,请同时测试两个键:
{{ if .Values.foo }}
{{ if .Values.foo.bar }}
{{ .Values.foo.bar }}
{{ end }}
{{ end }}
由于and
评估所有参数,即使第一个为false,在这种情况下也无法使用and
功能。
如果需要检查是否存在假值或空值,hasKey
中还包含sprig函数:
{{ if hasKey .Values.foo "bar" }}