Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 舵模板检查是否为空字符串_Kubernetes_Kubernetes Helm - Fatal编程技术网

Kubernetes 舵模板检查是否为空字符串

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

我被要求修改Helm模板以适应一些更改,以检查值是否为空,如下面的代码片段所示。我需要在代码片段的
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}}
应该涵盖这两种情况;这不是你的经验吗?