我在configmap中根据一些标志设置了一些属性'值。为了达到这个目的,我正在使用" if / else"我的configmap.yaml中的条件。但是这些"如果"条件工作正常如果内部只有一个表达式"如果"阻止,但多次表达棍棒与"或"和"和"正在评估错误。
configmap.yaml:
{{- else if (eq .Values.A "oracle") and (eq .Values.B "true") or (eq .Values.A "postgresql") }}
上述条件被评估为false但是它应该被评估为true,因为最后一个条件为真。
MYPROP1 = {{ (eq .Values.A"oracle") and (eq .Values.B "true") or (eq .Values.databaseType "postgresql") }} ==>printing false
MYPROP2 = {{ (eq .Values.A"oracle") and (eq .Values.B "true") }} ==>printing false
MYPROP3 = {{ (eq .Values.A"postgresql") }} ===> printing true
答案 0 :(得分:2)
表达式从左到右进行评估,并在and
运算符被评估为false
时立即退出。永远不会评估or
表达式。
使用括号时,您可以实现预期的行为:
((eq .Values.A "oracle") and (eq .Values.B "true")) or (eq .Values.A "postgresql")