如何告诉如果一个值,更具体地说,一个布尔类型的值是空的在gotpl别名helm模板?
如何判断一个简单的值是否为空?
您有多个选项,如何判断一个正常(非布尔)值是否为空。
一种非常粗暴且很长的方法是在节点周围放置if语句,例如
{{ if .Values.simpleText }}
isEmpty: false
{{ end }}
只有当.Values.simpleText
内存在任何值时,才会将isEmpty
计算为false
更好的方法是使用内置的empty
函数:
isEmpty2: {{ empty .Values.simpleText }}
这与第一个示例相同,只是更短,更有争议读
使用这些方法是,如果你有一个节点是bool类型,这些方法将不起作用。
#values.yaml
myBool: false
#-----------------------------------------
#template.yaml
isBoolEmpty: {{ empty .Values.myBool }}
#-----------------------------------------
#output
isBoolEmpty: true
这将声明
为false的值。.Values.myBool
是空的,即使它显然是空的
现在有一个选项来检查一个值是否为nil
isNil: {{ eq nil .Values.nilValue }}
如果值确实为nil (
nilValue:
),则结果为true,但一旦在nilValue
中有值,则会得到类型异常。
解决方案我发现最容易理解和使用的是:
{{ if (quote .Values.myBool | empty) }}
isActuallyEmpty: ".Values.myBool is empty"
{{ else }}
isActuallyEmpty: ".Values.myBool has a false or true value"
{{ end }}
我很抱歉,如果这是非常琐碎的,但我知道我已经挣扎了一段时间这个问题。