Sim*_*n I 16 go-templates kubernetes kubernetes-helm
我试图改变一个变量的值,如果它设置的另一个变量是通过将两个变量组合在中间的一个短划线,我不确定这样做的语法,我想到的事情如下:
{{- $serviceNamespace := .Values.serviceNamespace -}}
{{- $serviceTag := .Values.serviceTag -}}
{{- if $serviceTag}}
{{- $serviceNamespace := .Values.serviceNamespace "-" .Values.serviceTag -}}
{{- end}}
Run Code Online (Sandbox Code Playgroud)
它是否正确?如果serviceNamespace
是hello
,serviceTag
那1.0.0
我最终会serviceNamespace
成为hello-1.0.0
?
abi*_*net 28
对于连接,只需使用printf:
{{- $serviceNamespace := printf "%s-%s" .Values.serviceNamespace .Values.serviceTag -}}
Run Code Online (Sandbox Code Playgroud)
Gab*_* Wu 24
您可以简单地这样做,在中间使用字符串“:”
"{{ $values.image.repository }}:{{ $values.image.tag }}"
Run Code Online (Sandbox Code Playgroud)
更新
现在可以在golang 的1.11版本中看到commit:
{{- $serviceNamespace := .Values.serviceNamespace -}}
{{- $serviceTag := .Values.serviceTag -}}
{{- if $serviceTag}}
{{- $serviceNamespace = .Values.serviceNamespace "-" .Values.serviceTag -}}
{{- end}}
Run Code Online (Sandbox Code Playgroud)
注意新的=
运营商$serviceNamespace = .Values.serviceNamespace "-" .Values.serviceTag
较旧的golang版本
您当前不能(在golang 1.9中,但在1.11中可用,请参阅上面的更新)重新分配模板变量,因为if
引入了新的范围.在修复此问题之前(请参阅问题和建议的修复),您可以通过编写函数来解决此问题:
{{ define "makeServiceNamespace" }}
{{- if .Values.serviceTag }}
{{- printf "%s-%s" .Values.serviceNamespace .Values.serviceTag -}}
{{- else }}
{{- print .Values.serviceNamespace }}
{{- end }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
serviceNamespace: {{ template makeServiceNamespace . }}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15874 次 |
最近记录: |