helm 图表模板:如果值不存在,则默认为 true

2024-04-01

我试图声明,如果变量为 true 或不存在(即 var 的默认值为 true),则应存在 helm 模板中的代码块。以下作品:

    {{- if or .Values.livenessProbe (not (hasKey .Values "livenessProbe")) }}
    ...
    {{- end }}

这看起来很复杂,有没有更简单的?我尝试过default可以通过多种方式运行,但它们都会导致忽略该值(存在或不存在,真或假,块总是被渲染):

    {{- if (default true .Values.livenessProbe) }}
    ...
    {{- end }}

See https://helm.sh/docs/chart_template_guide/function_list/#default https://helm.sh/docs/chart_template_guide/function_list/#default解释原因default不按预期工作:boolean false 被视为“空”,因此当 value 为 false 时,默认值返回默认值,即忽略实际值!

我还发现https://github.com/helm/helm/issues/3308 https://github.com/helm/helm/issues/3308,这说明很多人都被这个绊倒了。看看该问题中的其他解决方案,我觉得我的(作为问题的一部分发布)实际上是最简单的,相当不幸。模式是这样的:

{{- if or .Values.myVar (not (hasKey .Values "myVar")) }}
...
{{- end }}

这基本上是说“如果值为真则渲染块,或者如果因为键不存在而值为假则渲染块”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

helm 图表模板:如果值不存在,则默认为 true 的相关文章