Как передать динамические данные в поддиаграмму helm

Я использую mongodb диаграмму руля и mongo-express. mongodb генерирует имя в зависимости от имени моего релиза, поэтому оно динамическое. Имя сервиса mongodb будет выглядеть примерно так: my-release-mongodb.

mongo-express требуется пройти mongodbServer - место, в котором можно добраться до mongodb. Как я могу передать это значение mongo-express, если оно генерируется и может меняться в зависимости от названия выпуска?

Возможно, вам придется выполнить какой-то сценарий, чтобы получить имя службы mongodb, и когда вы запускаете helm install для mongo-express, используйте --set serviceName=<value_from_script>.

Bala 21.12.2020 20:15

Да я вижу. Разве это не распространенная проблема?

enyo 21.12.2020 21:54
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
2
1 603
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У Хелма нет этой способности напрямую. (См. также helm — программно переопределить значения вложенной диаграммы. диаграмма.

В конкретном случае Служб, созданных поддиаграммой, я обычно рассматривал имя Службы как часть «API» диаграммы: вы знаете, что Служба будет называться {{ .Release.Name }}-mongodb, и вам просто нужно жестко закодировать это в потребляющей диаграмме.

Если вы запускаете это под одной «зонтичной» диаграммой, это немного проще. Обе части имеют одинаковое имя выпуска, поэтому вы можете создать имя службы одинаковым образом. (У зонтичных диаграмм есть и другие ограничения — если у вас есть несколько служб, каждая из которых должна иметь независимую установку MongoDB, Helm развернет базу данных только один раз для всей зонтичной диаграммы — но вы все равно можете столкнуться с той же проблемой, выполняя HTTP-вызовы между микросервисами.)

Если это совершенно разные установки, вам может потребоваться выбрать имя выпуска самостоятельно и передать его в качестве значения.

helm install thedb ./mongodb
helm install theapp ./mongo-express --set serviceName=thedb-mongodb

Это также место, где может пригодиться инструмент еще более высокого уровня, такой как Helmfile или Helmsman, поскольку это позволит вам указать эти параметры в фиксированном файле.

Спасибо! В этом есть смысл. Не могли бы вы немного подробнее рассказать о зонтике? У меня все на одной диаграмме, как вы говорите, и mongodb и mongo-express являются прямыми зависимостями от этой диаграммы. Как именно это мне поможет?

enyo 22.12.2020 09:56
.Release.Name одинаков в родительской диаграмме и во всех поддиаграммах, поэтому вы можете указать {{ .Release.Name }}-mongodb в клиенте, не зная названия выпуска заранее.
David Maze 22.12.2020 13:44

Ах хорошо да. Для справки, вот проблема, которую я нашел в теме github.com/helm/helm/issues/2133

enyo 22.12.2020 22:57

Другие вопросы по теме