我有几个对应于我不同环境的名称空间(iso,dev,sandbox等)。对于每个环境,因此对于名称空间,都有一个关联的数据库。 当我用Helm部署pod时,我想将名称空间注入一个值中以获得适当的密码。
在我的值文件中,我看起来像这样:
db:
iso: passwordISO
dev: passwordDEV
sandbox: passwordSANDBOX
spec: passwordSPEC
val: passwordVAL
在我的consumer_config文件中,我有这个:
db_host: DB_HOST-{{ .Release.Namespace }}
db_port: DB_PORT
db_name: DB_NAME
db_user: DB_PORT
db_password: {{ .Values.db.iso }}
我已经尝试使用{{- include }}
模式,但没有成功。我还尝试了{{ .Values.db.{{ .Release.Namespace }}}}
,并给了我以下错误unexpected <.> in operand
是否有关于执行此操作或任何变通方法的见解?
答案 0 :(得分:1)
由于Helm基于Go-template语言,因此go-template语言中可用的功能会有所帮助:
{{ index .Values.db .Release.Namespace }}
从文档(go-template文档)中:
索引 返回由第一个参数索引的结果 以下的论点。因此,在Go语法中,“ index x 1 2 3”是 x [1] [2] [3]。每个编入索引的项目都必须是映射,切片或数组。
因此,在这种情况下,您可以使用键.Values.db
来索引.Release.Namespace