Kubernetes 舵模板检查是否为空字符串
我被要求修改Helm模板以适应一些更改,以检查值是否为空,如下面的代码片段所示。我需要在代码片段的Kubernetes 舵模板检查是否为空字符串,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我被要求修改Helm模板以适应一些更改,以检查值是否为空,如下面的代码片段所示。我需要在代码片段的printf中检查$var.alias,并编写自定义逻辑以打印自定义值。任何关于这一点的建议都会很好 {{- range $key, $value := .Values.testsConfig.keyVaults -}} {{- range $secret, $var := $value.secrets -}} {{- if nil $var.alias}} {{- end -}} {{ $args
printf
中检查$var.alias
,并编写自定义逻辑以打印自定义值。任何关于这一点的建议都会很好
{{- range $key, $value := .Values.testsConfig.keyVaults -}}
{{- range $secret, $var := $value.secrets -}}
{{- if nil $var.alias}}
{{- end -}}
{{ $args = append $args (printf "%s=/mnt/secrets/%s/%s" $var.alias $key $var.name | quote) }}
{{- end -}}
{{- end -}}
我决定测试一下马德尼尔在评论中写的东西。这是我的档案: 价值观
someString: abcdef
emptyString: ""
# nilString:
模板/test.yaml
{{ printf "someEmptyString=%q)" .Values.someString }}
{{ printf "emptyString=%q)" .Values.emptyString }}
{{ printf "nilString=%q)" .Values.nilString }}
{{- if .Values.someString }}
{{ printf "someString evaluates to true" }}
{{- end -}}
{{- if .Values.emptyString }}
{{ printf "emptyString evaluates to true" }}
{{- end -}}
{{- if .Values.nilString }}
{{ printf "nilString evaluates to true" }}
{{- end -}}
{{- if not .Values.emptyString }}
{{ printf "not emptyString evaluates to true" }}
{{- end -}}
{{- if not .Values.nilString }}
{{ printf "not nilString evaluates to true" }}
{{- end -}}
舵模板输出:
➜ helm template . --debug
install.go:173: [debug] Original chart version: ""
install.go:190: [debug] CHART PATH: <REDACTED>
---
# Source: asd/templates/test.yaml
someEmptyString="abcdef")
emptyString="")
nilString=%!q(<nil>))
someString evaluates to true
not emptyString evaluates to true
not nilString evaluates to true
➜ 头盔模板--调试
安装。转到:173:[调试]原始图表版本:“
安装。转到:190:[调试]图表路径:
---
#来源:asd/templates/test.yaml
someEmptyString=“abcdef”)
清空字符串=”)
nilString=%!q())
someString的计算结果为true
not emptyString的计算结果为true
字符串的计算结果不是true
是的,如果你使用
{{if$var.alias}}
我决定测试一下madniel在评论中写的内容。这是我的档案:
价值观
someString: abcdef
emptyString: ""
# nilString:
模板/test.yaml
{{ printf "someEmptyString=%q)" .Values.someString }}
{{ printf "emptyString=%q)" .Values.emptyString }}
{{ printf "nilString=%q)" .Values.nilString }}
{{- if .Values.someString }}
{{ printf "someString evaluates to true" }}
{{- end -}}
{{- if .Values.emptyString }}
{{ printf "emptyString evaluates to true" }}
{{- end -}}
{{- if .Values.nilString }}
{{ printf "nilString evaluates to true" }}
{{- end -}}
{{- if not .Values.emptyString }}
{{ printf "not emptyString evaluates to true" }}
{{- end -}}
{{- if not .Values.nilString }}
{{ printf "not nilString evaluates to true" }}
{{- end -}}
舵模板输出:
➜ helm template . --debug
install.go:173: [debug] Original chart version: ""
install.go:190: [debug] CHART PATH: <REDACTED>
---
# Source: asd/templates/test.yaml
someEmptyString="abcdef")
emptyString="")
nilString=%!q(<nil>))
someString evaluates to true
not emptyString evaluates to true
not nilString evaluates to true
➜ 头盔模板--调试
安装。转到:173:[调试]原始图表版本:“
安装。转到:190:[调试]图表路径:
---
#来源:asd/templates/test.yaml
someEmptyString=“abcdef”)
清空字符串=”)
nilString=%!q())
someString的计算结果为true
not emptyString的计算结果为true
字符串的计算结果不是true
是的,如果你使用
{{if$var.alias}}
我相信golang模板不会自然地区分nil
和“
,所以{if$var.alias}
应该涵盖这两种情况;这不是你的经验吗?我相信golang模板不会自然地区分nil
和”
,因此{{if$var.alias}}
应该涵盖这两种情况;这不是你的经验吗?