Определение частичного шаблона с define
Объявляйте повторно используемый именованный блок шаблона
«Определение частичного шаблона с define» — бесплатный урок Helm Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.
Зачем повторять одно и то же?
Одни и те же метки и имена копируются в каждый манифест чарта. Именованный шаблон позволяет написать этот блок один раз и использовать его повторно везде.
Знакомство с действием define
Вы объявляете повторно используемый блок с помощью действия define. Оно задаёт имя фрагменту текста шаблона, но само по себе ничего не выводит.
{{- define "mychart.labels" -}}
app: my-app
{{- end -}}Анатомия блока define
Каждый блок define открывается строкой с именем и закрывается с помощью end. Всё, что находится между ними, — это тело, которое вызывающие шаблоны смогут вставить.
{{- define "NAME" -}}
...body...
{{- end -}}Соглашения об именовании важны
Имена глобальны для всего чарта, поэтому добавляйте к ним имя чарта, чтобы избежать конфликтов. Формат с точкой chart.purpose является общепринятым соглашением.
{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: mychart
{{- end -}}Где находятся частичные шаблоны
По соглашению все блоки define помещают в templates/_helpers.tpl. Начальное подчёркивание сообщает Helm, что этот файл не создаёт собственного манифеста.
Файлы с подчёркиванием имеют особое назначение
Файлы в templates, начинающиеся с подчёркивания, никогда не преобразуются в объекты Kubernetes. Они содержат только частичные шаблоны и помощники для использования в других местах.
Define ничего не выводит
Определение частичного шаблона лишь регистрирует его имя. В отрендеренном YAML ничего не появится, пока другой шаблон действительно не вызовет этот частичный шаблон.
Частичный шаблон может использовать точку
Внутри частичного шаблона можно обращаться к контексту, например к .Release.Name, но только если вызывающая сторона передаст ему эту область действия. Скоро мы рассмотрим передачу области действия.
{{- define "mychart.name" -}}
{{ .Release.Name }}
{{- end -}}Много частичных шаблонов в одном файле
В _helpers.tpl можно разместить сколько угодно блоков define. Группируйте связанные помощники, чтобы файл было легко просматривать.
{{- define "mychart.name" -}}
my-app
{{- end -}}
{{- define "mychart.fullname" -}}
my-app-prod
{{- end -}}Частичные шаблоны помогают создавать большие чарты
По мере роста чарта частичные шаблоны поддерживают одинаковые метки и имена во всех местах. Измените помощник один раз — и каждый использующий его манифест обновится.
Определение — только половина работы
Само по себе define не выполняет никаких действий. Следующий шаг — вставить его в настоящие манифесты с помощью include или template; этому посвящён следующий урок.
Быстрая проверка
Вы добавили блок define, но результат рендеринга пуст. Почему?
Повторение: определение частичных шаблонов
Вы научились объявлять повторно используемые блоки с помощью define, называть их chart.purpose и хранить в _helpers.tpl. Теперь вы научитесь их вызывать. 🧩
Часто задаваемые вопросы
Урок «Определение частичного шаблона с define» бесплатный?
Да — полный текст урока «Определение частичного шаблона с define» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.
Чему я научусь в уроке «Определение частичного шаблона с define»?
Объявляйте повторно используемый именованный блок шаблона Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Helm Academy?
Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Определение частичного шаблона с define»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Helm Academy?
Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Определение частичного шаблона с define
- Вставка частичных шаблонов с template и include
- Стандартные помощники Fullname и Labels
- Передача области видимости в именованный шаблон