Go 有没有办法将名称空间包含在值中?
我有几个名称空间(iso、dev、sandbox等),它们对应于我的不同环境。对于每个环境和名称空间,都有一个关联的db。 当我使用Helm部署pod时,我希望将名称空间注入一个值以获得适当的密码 在我的值文件中,我有如下内容:Go 有没有办法将名称空间包含在值中?,go,kubernetes,kubernetes-helm,helmfile,Go,Kubernetes,Kubernetes Helm,Helmfile,我有几个名称空间(iso、dev、sandbox等),它们对应于我的不同环境。对于每个环境和名称空间,都有一个关联的db。 当我使用Helm部署pod时,我希望将名称空间注入一个值以获得适当的密码 在我的值文件中,我有如下内容: db: iso: passwordISO dev: passwordDEV sandbox: passwordSANDBOX spec: passwordSPEC val: passwordVAL 在我的consumer_config文件中,我有以
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}}}}
给我以下操作数中意外的错误
有关如何执行此操作或任何解决方法的任何见解?由于Helm基于Go模板语言,Go模板语言中可用的功能可以提供帮助:
{{ index .Values.db .Release.Namespace }}
从文档(go模板文档)中:
索引
返回按索引索引其第一个参数的结果
下面的论点。因此,“索引x123”在Go语法中是,
x[1][2][3]。每个索引项必须是映射、切片或数组
因此,在本例中,使用键.Release.Namespace
索引.Values.db
,不建议将BD密码存储在helm Values.yaml文件中。相反,在各自的NAMS空间中创建一个包含DB密码的秘密对象,并将其附加到POD。