Стандартная практика в картах штурвала - использовать {{ 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>
. Если по какой-то причине вы не хотите делать это таким образом, и вы развертываете свои зависимости перед развертыванием своей основной диаграммы, тогда вы должны иметь возможность указать им на расположение зависимостей по их предоставленному имени, так как вы должны получить его, когда вы их установили.