Kubernetes Helm图表:使用_helpers.tpl合并值并反馈到Values.yaml

时间:2019-10-09 16:38:31

标签: go yaml kubernetes-helm go-templates

我是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

这似乎都不起作用。我不知道这是我的方法还是我的语法。可能两者都有。

0 个答案:

没有答案