我是Kubernetes,Helm和Golang的新手。基本上,我试图在我的values.yaml文件中合并字符串以在我的values.yaml文件中填充另一个值。我正在使用_helpers.tpl进行此操作(以更好地理解Helm和Golang)。我可以在我的values.yaml文件中编写“用户:” datafeed:password :::: incoming”并完成该操作。但想避免这种情况。
我的values.yaml文件中包含以下内容:
sftp:
users: ""
username: "datafeed"
password: "password"
incoming: "incoming"
并希望最终 values.yaml文件读取:
sftp:
users: "datafeed:password:::incoming"
username: "datafeed"
password: "password"
incoming: "incoming"
为此,我正在尝试编辑_helpers.tpl文件。我尝试过
{{- define "sftp.users" -}}
{{- .Values.sftp.users: .Values.sftp.username+":"+.Values.sftp.password+":::"+.Values.sftp.incoming -}}
{{- end -}}
和
{{- define "sftp.users" -}}
{{- .Values.sftp.users:= .Values.sftp.username+":"+.Values.sftp.password+":::"+.Values.sftp.incoming -}}
{{- end -}}
然后我尝试将每个段都设为变量(并删除了values.yaml文件中的显式值):
{{- define "sftp.users" -}}
{{ $username:= "datafeed" }}
{{ $password:= "password" }}
{{ $incoming:= "incoming" }}
{{- .Values.sftp.users= {{$username}}+":"+{{$password}}":::"+{{$incoming}} -}}
,然后显式设置字段/键:
username: {{ .Values.sftp.username | default "datafeed" }}
password: {{ .Values.sftp.password | default "password" }}
incoming: {{ .Values.sftp.incoming | default "incoming" }}
{{- .Values.sftp.users:= username+":"+password+":::"+incoming -}}
和:
{{define "username"}}datafeed{{end}}
{{define "password"}}password{{end}}
{{define "incoming"}}incoming{{end}}
{{define "users"}}{{template "username"}}:{{template "password"}}:::{{template "incoming"}}{{end}}
{{- printf "users" -}}
{{- .Values.sftp.users: users -}}
我也看过以前的文章: Helm _helpers.tpl: Calling defined templates in other template definitions Kubernetes Helm, combine two variables with a string in the middle How to get values from values.yaml to _helpers.tpl in helm charts
这似乎都不起作用。我不知道这是我的方法还是我的语法。可能两者都有。