Назад | Перейти на главную страницу

Подключение сервисов в Helm

Стандартная практика в картах штурвала - использовать {{ template "<chartname>.fullname" . }} для имени службы, где <chartname>.fullname шаблон эффективно расширяется до .Release.Name-.Chart.name. Последнее может быть отменено .Values.nameOverride, но первое или полное значение не может. А первое либо задается администратором, либо случайное.

Итак, как мне сообщить службе, которую я создаю, диаграмма, где подключиться к ее зависимостям? В .Release.Name префикс заражает и DNS, и переменные окружения, поэтому я не могу использовать ни то, ни другое.

Например, если я установил зависимость на стабильный / mariadb, он создаст такую ​​службу, как nutty-narwhal-mariadb и предоставить переменные среды NUTTY_NARWHAL_MARIADB_SERVICE_HOST=10.108.77.204 и NUTTY_NARWHAL_MARIADB_SERVICE_PORT=3306. Но это бесполезно, потому что создаваемая мной служба не знает префикса.

Обратите внимание, что шаблон, созданный текущим helm create включает .Values.fullnameOverride, но существующие диаграммы в основном репозитории вроде стабильный / mariadb нет, поэтому я не могу просто установить mariadb.fullnameOverride в моем values.yaml.

Обычно ваши зависимости объединяются в одну и ту же «зонтичную» диаграмму, в результате получается одна .Release.Name для всех из них, а это означает, что вы сможете указать на них в своей диаграмме, используя такие вещи, как .Release.Name-<subchart>. Если по какой-то причине вы не хотите делать это таким образом, и вы развертываете свои зависимости перед развертыванием своей основной диаграммы, тогда вы должны иметь возможность указать им на расположение зависимостей по их предоставленному имени, так как вы должны получить его, когда вы их установили.