Helm Academy · Урок

Экспорт повторно используемых именованных шаблонов

Публикация частичных шаблонов, которые могут подключать другие чарты

Урок 2 из 413 шагов

«Экспорт повторно используемых именованных шаблонов» — бесплатный урок Helm Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.

Именованные шаблоны — главное содержимое

Библиотечный чарт поставляет свою ценность в виде именованных шаблонов. Вы создаёте их с помощью define, как и в любом файле _helpers.tpl.

{{- define "common.fullname" -}}
{{ .Release.Name }}-{{ .Chart.Name }}
{{- end -}}

Добавление пространства имён к именам шаблонов

Имена шаблонов являются глобальными для чарта и его зависимостей. Добавляйте к ним префикс с именем библиотеки, например common.labels, чтобы избежать конфликтов.

{{- define "common.labels" -}}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}

Размещение в templates

Шаблоны библиотеки находятся в каталоге templates чарта, в файлах с начальным символом подчёркивания, чтобы Helm никогда не визуализировал их как манифесты.

common/
  templates/
    _labels.tpl
    _names.tpl

Define сам по себе ничего не выводит

Пустой блок define ничего не создаёт при визуализации чарта. Шаблон выводит текст только тогда, когда позже его подключает другой чарт.

Экспорт полноценного ресурса

Вы можете определить целый объект Kubernetes как один именованный шаблон. Затем потребители визуализируют полный Service одним вызовом include.

{{- define "common.service" -}}
apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}
{{- end -}}

Получение контекста вызывающего кода

Внутри частичного шаблона точка содержит всё, что передал вызывающий код. Обращение к .Values и .Release позволяет шаблону адаптироваться к каждому использующему его чарту.

{{- define "common.image" -}}
{{ .Values.image.repository }}:{{ .Values.image.tag }}
{{- end -}}

Документируйте ожидаемую область видимости

Поскольку частичные шаблоны доверяют своим входным данным, оставьте комментарий с указанием необходимого им контекста. Если потребитель передаст неправильную точку, возникнут непонятные ошибки.

{{/* common.fullname expects the root context (.) */}}

Одна задача на шаблон

Разделяйте логику на небольшие целевые частичные шаблоны: один для имён, другой для меток, третий для селекторов. Небольшие части легко объединять в разных чартах.

Маркеры пробелов важны

Обрамляйте define и end маркерами дефисов, например {{- и -}}, чтобы вывод библиотеки не добавлял лишние пустые строки в YAML потребителя.

{{- define "common.name" -}}
{{ .Chart.Name }}
{{- end -}}

Ничего не экспортируется до подключения

Определение шаблона делает его доступным, но не активирует его. Он добавляет вывод только тогда, когда чарт приложения вызывает для него include или template.

Небольшой набор повторно используемых помощников

Набор частичных шаблонов, таких как common.fullname и common.labels, становится общим словарём, на котором может строиться каждый командный чарт.

{{- define "common.fullname" -}}
{{ printf "%s-%s" .Release.Name .Chart.Name }}
{{- end -}}

Быстрая проверка

Почему библиотеке следует добавлять префикс к именам шаблонов, например использовать common.labels вместо labels?

Итоги: экспорт шаблонов

Вы публикуете повторно используемую логику с помощью define в файлах с начальным символом подчёркивания, добавляете пространство имён к именам и используете точку вызывающего кода как контекст. 🧩

Можно начать бесплатно

Изучай YAML с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Экспорт повторно используемых именованных шаблонов» бесплатный?

Да — полный текст урока «Экспорт повторно используемых именованных шаблонов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.

Чему я научусь в уроке «Экспорт повторно используемых именованных шаблонов»?

Публикация частичных шаблонов, которые могут подключать другие чарты Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Helm Academy?

Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Экспорт повторно используемых именованных шаблонов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Helm Academy?

Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объявление типа библиотечного чарта
  2. Экспорт повторно используемых именованных шаблонов
  3. Использование библиотеки как зависимости
  4. Локальная замена значений библиотеки по умолчанию
← Назад к Helm Academy