在一条生产线上'if'舵条件



我试图将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 }}

最新更新