当值为空字符串时,Helm 使用默认字符串
Helm use default string when values is empty string
在使用Helm3时,我想在设置.Values.nameOverride
时将某个名称设置为(.Values.nameOverride)-init
,在未设置.Values.nameOverride
时将名称设置为“init”(只是定义为空字符串)。但是,通过使用下面的表达式,从不使用默认值。
name: {{ printf "%s-init" .Values.nameOverride | default "init" }}
我可以通过使用更多行来实现我想要实现的目标。
{{- if .Values.nameOverride }}
name: {{ .Values.nameOverride }}-init
{{- else }}
name: "init"
{{- end }}
是否可以通过更简单的方式实现目标?我必须在多个地方使用这个表达式,所以我想缩短表达式。
谢谢!
Go text/template
with
运算符在这里很有用。与 if
一样,它会测试该值是否为“truthy”;如果是,那么在块内,它将特殊变量 .
绑定到它匹配的值。所以在这里你可以写:
name: {{ with .Values.nameOverride }}{{ . }}-{{ end }}init
将其分成更多行:
name: {{/* comment */}}
{{- with .Values.nameOverride -}} {{-/* if the value is defined */-}}
{{- . -}} {{-/* emit it */-}}
- {{-/* and a hyphen */-}}
{{- end -}}
init {{-/* and either way, the string "init" */}}
在使用Helm3时,我想在设置.Values.nameOverride
时将某个名称设置为(.Values.nameOverride)-init
,在未设置.Values.nameOverride
时将名称设置为“init”(只是定义为空字符串)。但是,通过使用下面的表达式,从不使用默认值。
name: {{ printf "%s-init" .Values.nameOverride | default "init" }}
我可以通过使用更多行来实现我想要实现的目标。
{{- if .Values.nameOverride }}
name: {{ .Values.nameOverride }}-init
{{- else }}
name: "init"
{{- end }}
是否可以通过更简单的方式实现目标?我必须在多个地方使用这个表达式,所以我想缩短表达式。
谢谢!
Go text/template
with
运算符在这里很有用。与 if
一样,它会测试该值是否为“truthy”;如果是,那么在块内,它将特殊变量 .
绑定到它匹配的值。所以在这里你可以写:
name: {{ with .Values.nameOverride }}{{ . }}-{{ end }}init
将其分成更多行:
name: {{/* comment */}}
{{- with .Values.nameOverride -}} {{-/* if the value is defined */-}}
{{- . -}} {{-/* emit it */-}}
- {{-/* and a hyphen */-}}
{{- end -}}
init {{-/* and either way, the string "init" */}}