Я начинаю писать рулевые диаграммы для наших услуг.
Есть две вещи, которые я не знаю, как они должны работать или что с ними делать.
Первое: название релиза. При установке диаграммы вы указываете имя, которое использует helm для создания релиза. На это имя выпуска часто ссылаются в диаграмме, чтобы правильно изолировать установки диаграммы друг от друга? Например, диаграмма postgres содержит:
{{- define "postgresql.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
Который затем используется для службы:
metadata:
name: {{ template "postgresql.fullname" . }}
В конце концов, в kubernetes это выглядит как "myrelease-postgresql". Интересно, что такое хорошее название релиза? Что обычно используется для этого? Версия? Или какое-нибудь кодовое имя, например, релизы Ubuntu?
Второе: ссылки на значения.
Моя диаграмма использует postgresql в качестве под-диаграммы. Я не хотел бы дублировать способ создания значения для имени службы postgresql (см. выше).
Есть ли способ, с помощью которого я могу ссылаться на имя службы вложенной диаграммы или определить этот шаблон {{template "postgresql.fullname". }} в родительской диаграмме? Мне нужно передать его в мой сервис в качестве хоста базы данных (который работает, если я жестко закодирую все, но это не может быть смыслом этого).
Я пытался:
env:
- name: DB_HOST
value: {{ template "mychart.postgresql.fullname" . }}
Но это приводит к сообщению об ошибке:
template "mychart.postgresql.fullname" not defined
Я видел примеры диаграмм, делающих подобные вещи, например, диаграмму odoo. Но здесь копируется логика создания имени хоста postgresql и создается собственное определение в шаблоне.
Так есть ли способ получить доступ к именам вложенных диаграмм? Или значения или шаблон определяет?
Спасибо!
Обновление после некоторых копаний: Согласно Subcharts и Globals шаблоны распределяются между диаграммами.
Так что я могу сделать это:
На моем графике в _helpers.tpl я добавляю (перезаписываю) блок postgres:
{{- define "postgresql.fullname" -}}
{{- $name := .Values.global.name -}}
{{- printf "%s-%s" $name "postgresql" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
Таким образом, это значение используется при развертывании вложенной диаграммы. Я не могу ссылаться на все значения или имя диаграммы здесь, поскольку она будет отличаться в под-диаграмме - поэтому я использовал глобальное значение.
Таким образом, я знаю ценность службы, которая создается в дополнительной диаграмме.
Не уверен, что это лучший способ сделать это: -/