繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM