Go 动态获取变量

Go 动态获取变量,go,go-templates,Go,Go Templates,我使用Go模板来管理Helm的部署 我的values.yaml文件如下: env: dev config: dev: myname: Hi live: myname: Bye 现在,我想根据环境(dev、live)获取值。 比如: 不幸的是,这种方法不起作用,因为它说: bad character U+007B '{' 是否有任何方法可以使用其他值获取值?以下方法可能有效。我没有测试它 {{ .Values.config.(.Values.env) }

我使用Go模板来管理Helm的部署

我的values.yaml文件如下:

env: dev
config:
   dev:
       myname: Hi
   live:
       myname: Bye
现在,我想根据环境(dev、live)获取值。 比如:

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

bad character U+007B '{'
是否有任何方法可以使用其他值获取值?

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

{{ .Values.config.(.Values.env) }}
完整的模板语法可以在中找到。

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

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

完整的模板语法可以在中找到。

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

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

{{ index .Values.config .Values.env `myname` }}
更多信息


更多信息。

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

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

{{ index .Values.config .Values.env `myname` }}
更多信息


有关的更多信息。

嘿!回答很好,但也可以在不指定之前的变量的情况下工作,比如:{{index.Values.config.Values.env
myname
}}@IdirOuhabMeskine您是对的,而且这个更短,所以我编辑了我的答案。嘿!回答很好,但也可以在不指定之前的变量的情况下工作,如:{{index.Values.config.Values.env
myname
}}@IdirOuhabMeskine您是对的,这是较短的,因此我编辑了我的答案。