Helm模板检查布尔值是否为空而不是false



如何告诉如果一个值,更具体地说,一个布尔类型的值是空的在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

这将声明.Values.myBool是空的,即使它显然是空的

为false的值。

现在有一个选项来检查一个值是否为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 }}

我很抱歉,如果这是非常琐碎的,但我知道我已经挣扎了一段时间这个问题。

相关内容

  • 没有找到相关文章

最新更新