Есть ли способ включить пространство имен в значение?
У меня есть несколько пространств имен (iso, dev, sandbox и т. Д.), Которые соответствуют моим различным средам. Для каждого окружения и, следовательно, пространства имен, есть связанный БД. Когда я развертываю свой модуль с помощью Helm, я хотел бы внедрить пространство имен в значение, чтобы получить соответствующий пароль.
В моем файле значений у меня есть что-то похожее на это:
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
Любое понимание того, как сделать это или любой обходной путь?
1 ответ
Поскольку Helm основан на языке Go-template, могут помочь функции, доступные на языке Go-template:
{{ index .Values.db .Release.Namespace }}
Из документов (go-template docs):
index Возвращает результат индексации своего первого аргумента следующими аргументами. Таким образом, "index x 1 2 3" в синтаксисе Go - x[1][2][3]. Каждый индексированный элемент должен быть картой, срезом или массивом.
так что в этом случае вы индекс .Values.db
с ключом .Release.Namespace