我有几个对应于我不同环境的 namespace (iso,dev,sandbox等)。对于每个环境,因此对于 namespace ,都有一个关联的数据库。
当我用Helm部署pod时,我想将 namespace 注入(inject)一个值中以获得适当的密码。

在我的值文件中,我看起来像这样:

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
对如何执行此操作有任何见解?

最佳答案

由于Helm基于Go-template语言,因此go-template语言中可用的功能可能会有所帮助:

{{ index .Values.db .Release.Namespace }}

从文档(Go 模板文档)中:



因此,在这种情况下,您需要使用.Values.db键索引.Release.Namespace

关于go - 有没有一种方法可以将 namespace 包含在值中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56867201/

10-15 21:00