Helm 'if' 一行中的条件
Helm 'if' condition in one line
我试图将 if
条件放在 helm 模板的一行中:
- name: ENV_VARIABLE
value: {{- if .Values.condition }}"Value1"{{- else }}"Value2"{{- end }}
但是,我遇到了错误:
Error: YAML parse error on chart/templates/deployment.yaml: error
converting YAML to JSON: yaml: line NN: could not find expected ':'
所以我得到了多行条件:
- name: ENV_VARIABLE
{{- if .Values.condition }}
value: "Value1"
{{- else }}
value: "Value2"
{{- end }}
工作正常,但非常不紧凑。
有没有办法在 helm 中使用单线 if
条件?
您所做的工作有效,但您使用了前导连字符,removes all preceding whitespace。
由于连字符,下面将呈现为 value:foo
。
value: {{- "foo" }}
如果删除连字符,它应该可以工作。
也就是说,还有一个 ternary function 可以放在这里。
ternary
The ternary function takes two values, and a test value. If the test value is true, the first value will be returned. If the test value is empty, the second value will be returned. This is similar to the c ternary operator.
true test value
ternary "foo" "bar" true
or
true | ternary "foo" "bar"
- name: ENV_VARIABLE
value: {{ .Values.condition | ternary "value1" "value2" | quote }}
我试图将 if
条件放在 helm 模板的一行中:
- name: ENV_VARIABLE
value: {{- if .Values.condition }}"Value1"{{- else }}"Value2"{{- end }}
但是,我遇到了错误:
Error: YAML parse error on chart/templates/deployment.yaml: error converting YAML to JSON: yaml: line NN: could not find expected ':'
所以我得到了多行条件:
- name: ENV_VARIABLE
{{- if .Values.condition }}
value: "Value1"
{{- else }}
value: "Value2"
{{- end }}
工作正常,但非常不紧凑。
有没有办法在 helm 中使用单线 if
条件?
您所做的工作有效,但您使用了前导连字符,removes all preceding whitespace。
由于连字符,下面将呈现为 value:foo
。
value: {{- "foo" }}
如果删除连字符,它应该可以工作。
也就是说,还有一个 ternary function 可以放在这里。
ternary
The ternary function takes two values, and a test value. If the test value is true, the first value will be returned. If the test value is empty, the second value will be returned. This is similar to the c ternary operator.
true test value
ternary "foo" "bar" true
or
true | ternary "foo" "bar"
- name: ENV_VARIABLE
value: {{ .Values.condition | ternary "value1" "value2" | quote }}