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

У Хелма нет этой способности напрямую. (См. также 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 являются прямыми зависимостями от этой диаграммы. Как именно это мне поможет?
.Release.Name одинаков в родительской диаграмме и во всех поддиаграммах, поэтому вы можете указать {{ .Release.Name }}-mongodb в клиенте, не зная названия выпуска заранее.
Ах хорошо да. Для справки, вот проблема, которую я нашел в теме github.com/helm/helm/issues/2133
Возможно, вам придется выполнить какой-то сценарий, чтобы получить имя службы
mongodb, и когда вы запускаетеhelm installдляmongo-express, используйте--set serviceName=<value_from_script>.