使用Golang模板动态获取变量

时间:2017-07-28 22:30:44

标签: go go-templates

我正在使用Golang模板来管理Helm的部署。

我有这样的values.yaml文件:

env: dev
config:
   dev:
       myname: Hi
   live:
       myname: Bye

现在我想根据环境(dev,live)获取值。 像:

{{ .Values.config. {{.Values.env}} }}

不幸的是,这种方式不起作用,因为它说:

bad character U+007B '{'

有没有办法使用其他值获取值?

2 个答案:

答案 0 :(得分:4)

问题来自嵌套模板,这不是golang模板的工作方式。

解决方案取决于数据的内部表示。如果它表示为嵌套映射,则解决方案是使用管道全局函数index

{{ index .Values.config .Values.env `myname` }}

有关pipelines的更多信息。

有关global template functions的更多信息。

答案 1 :(得分:0)

以下可能有效。我没有测试它......

{{ .Values.config.(.Values.env) }}

完整的模板语法可在text/template documentation

中找到
相关问题