Диаграммы Helm определяют в _helpers.tpl
вспомогательные шаблоны, которые используются для создания нормализованных имен для служб. Стандартная форма шаблона для имени службы (DNS):
{{- define "postgresql.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
Если вы используете postgresql в качестве поддиаграммы, как вы должны использовать обнаружение службы на основе DNS, чтобы ссылаться на нее? Похоже, что распространенным шаблоном является копирование помощников подграфика в родительскую диаграмму.
{{- define "keycloak.postgresql.fullname" -}}
{{- $name := default "postgresql" .Values.postgresql.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
Это полное безумие по понятным причинам !!!
Наверняка есть лучший способ использовать помощник по под диаграммам? Если бы вы могли создать объект контекста, его можно было бы вызвать, например:
value: {{ template "postgresql.fullname" ({Chart: {Name: 'not-used'}, Release: {Name: .Release.Name}, Values: { nameOverride: .Values.postgresql.nameOverride}}) }}
К сожалению, я понятия не имею, как на самом деле создать такой контекст динамически. Это все равно сломается, если вспомогательная функция изменится на ссылку на новые свойства, но очевидным образом.
Или другой способ сделать доступным имя службы из поддиаграммы?