我正在使用Golang模板来管理Helm的部署。
我有这样的values.yaml文件:
env: dev
config:
dev:
myname: Hi
live:
myname: Bye
Run Code Online (Sandbox Code Playgroud)
现在,我想根据环境(开发,实时)获取值。喜欢:
{{ .Values.config. {{.Values.env}} }}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这种方式行不通,因为它说:
bad character U+007B '{'
Run Code Online (Sandbox Code Playgroud)
有什么方法可以使用其他值来获取值?
问题来自嵌套模板,这不是golang模板的工作方式。
解决方案取决于数据的内部表示。如果将其表示为嵌套映射,则解决方案是使用管道全局函数index。
{{ index .Values.config .Values.env `myname` }}
Run Code Online (Sandbox Code Playgroud)
有关管道的更多信息。
有关全局模板功能的更多信息。