我试图将if
条件放在helm模板的一行中:
- name: ENV_VARIABLE
value: {{- if .Values.condition }}"Value1"{{- else }}"Value2"{{- end }}
然而,我得到错误:
错误:图表/模板/部署上的YAML解析错误。yaml:错误将YAML转换为JSON: YAML: line NN:无法找到预期的':'
所以我结束了多行条件:
- name: ENV_VARIABLE
{{- if .Values.condition }}
value: "Value1"
{{- else }}
value: "Value2"
{{- end }}
可以正常工作,但是非常不紧凑。
在舵机中是否有使用一行if
条件的方法?
您所做的工作,但您使用了前导连字符,它删除了前面的所有空白。
由于连字符的关系,下面将显示为value:foo
。
value: {{- "foo" }}
如果你删除连字符,它应该工作。
也就是说,这里也有一个三元函数。
三元
这个三元函数接受两个值和一个测试值。如果测试值为true,则返回第一个值。如果测试值为空,则返回第二个值。这类似于c的三元操作符。
真实测试值
ternary "foo" "bar" true
or
true | ternary "foo" "bar"
- name: ENV_VARIABLE
value: {{ .Values.condition | ternary "value1" "value2" | quote }}