[英]Helm template check if boolean value is actually empty not false
如何判断一个值,更具体地说,aa boolean 类型的值在 gotpl 别名 helm 模板中是否为空?
如何判断一个简单值是否为空?
您有多种选择,如何判断正常(非布尔)值是否为空。
一种非常蛮力且相当长的方法是在您的节点周围放置一个 if 语句,例如
{{ if .Values.simpleText }}
isEmpty: false
{{ end }}
仅当.Values.simpleText
中有任何值时,这才会将isEmpty
评估为false
更好的方法是使用内置的empty
function:
isEmpty2: {{ empty .Values.simpleText }}
这与第一个示例相同,只是更短并且可以说更具可读性
这些方法的问题是,如果您有一个 bool 节点,这些方法将不起作用。
#values.yaml
myBool: false
#-----------------------------------------
#template.yaml
isBoolEmpty: {{ empty .Values.myBool }}
#-----------------------------------------
#output
isBoolEmpty: true
这将声称
.Values.myBool
是空的,即使它显然有一个错误的值。
现在有一个选项可以检查值是否为 nil
isNil: {{ eq nil .Values.nilValue }}
如果该值确实为 nil (
nilValue:
),则结果为真,但是只要您在nilValue
中有一个值,您就会得到一个类型异常。
我发现并且似乎最容易理解和使用的解决方案是:
{{ if (quote .Values.myBool | empty) }}
isActuallyEmpty: ".Values.myBool is empty"
{{ else }}
isActuallyEmpty: ".Values.myBool has a false or true value"
{{ end }}
如果这是非常微不足道的,我很抱歉,但我知道我在这个问题上苦苦挣扎了一段时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.