如何在Helm的AND条件中包含字符串并返回布尔值?
Helm模板:将AND运算结果转为布尔值
想要用AND运算符检查多个条件,不用if语句直接生成布尔值结果。当前用and (.Values.boolValue) (.Values.stringValue)得到的是字符串值,希望返回布尔类型的true。
当前示例代码
template.yaml
- name: VARIABLE_NAME value: {{ and (.Values.boolValue) (.Values.stringValue) }}
values.yaml
boolValue: true stringValue: "value"
当前输出
- name: VARIABLE_NAME value: "value"
解决方案
方法1:用bool函数强制转布尔值
直接在AND运算外层套bool函数,它会把非空字符串、true这类“真值”转为布尔类型的true:
- name: VARIABLE_NAME value: {{ bool (and (.Values.boolValue) (.Values.stringValue)) }}
方法2:显式判断字符串非空
如果要更明确控制逻辑,可以单独判断字符串不为空,再和布尔值做AND运算,结果直接是布尔值:
- name: VARIABLE_NAME value: {{ and (.Values.boolValue) (ne .Values.stringValue "") }}
修改后输出
- name: VARIABLE_NAME value: true
内容的提问来源于stack exchange,提问作者Trevor Karjanis
相关产品推荐
相关产品推荐

