0Pricing
DevOps Bootcamp · Урок

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

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

«Экспорт повторно используемых именованных шаблонов» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 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 в файлах с начальным символом подчёркивания, добавляете пространство имён к именам и используете точку вызывающего кода как контекст. 🧩

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

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

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

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

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

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

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

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

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

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

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

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

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