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

Templates 舵图模板:如果值不存在,则默认为true,templates,kubernetes-helm,go-templates,Templates,Kubernetes Helm,Go Templates,我试图声明,如果变量为true或不存在(即,var的默认值为true),则helm模板中的代码块应该存在。以下工作: {{- if or .Values.livenessProbe (not (hasKey .Values "livenessProbe")) }} ... {{- end }} 这似乎很复杂,有更简单的吗?我尝试了几种方法使用default函数,但它们都会导致忽略该值(存在与否,真与假,块始终被渲染): 有关为什么default无法按

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

    {{- if or .Values.livenessProbe (not (hasKey .Values "livenessProbe")) }}
    ...
    {{- end }}
这似乎很复杂,有更简单的吗?我尝试了几种方法使用
default
函数,但它们都会导致忽略该值(存在与否,真与假,块始终被渲染):

有关为什么
default
无法按预期工作的解释,请参阅:布尔值false被视为“空”,因此当值为false时,默认值返回默认值,即忽略实际值

我还发现,这表明很多人被这绊倒了。看看这个问题的其他解决方案,我觉得我的解决方案实际上是最简单的,相当不幸

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