0Pricing
Helm Academy · Урок

Вставка частичных шаблонов с template и include

Почему include поддерживает композицию с конвейерами, а template — нет

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

Вызов частичного шаблона

Определённый частичный шаблон ничего не делает, пока его не вызовут. Для этого Helm предоставляет два действия: template и include.

Действие template

Действие template вставляет именованный частичный шаблон непосредственно в текущий текст. Ему передают имя частичного шаблона и объект области действия, из которого он читает данные.

{{ template "mychart.labels" . }}

Почему возможности template ограничены

Действие template является инструкцией, а не выражением. Его результат сразу попадает в документ, и его нельзя передать через канал другим функциям.

Знакомство с include

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

{{ include "mychart.labels" . }}

include сочетается с конвейерами

Поскольку include возвращает значение, его можно передавать через канал таким функциям, как indent или nindent. Поэтому в чартах почти всегда предпочитают include.

{{ include "mychart.labels" . | indent 4 }}

Главная причина — отступы

Вставленный YAML должен оказаться на нужном уровне отступа. Только include можно передать через канал функции nindent, поэтому он каждый раз создаёт правильно вложенный результат.

metadata:
  labels:
    {{- include "mychart.labels" . | nindent 4 }}

Аргумент области действия

Точка после имени частичного шаблона — это область действия, которую вы ему передаёте. Передача корневой точки позволяет частичному шаблону читать .Values и .Release.

{{ include "mychart.fullname" . }}

Помощник, создающий имя

Здесь частичный шаблон возвращает имя, а Deployment использует include, чтобы вставить его в метаданные. Один источник истины — множество вызывающих шаблонов.

metadata:
  name: {{ include "mychart.fullname" . }}

У template есть своё назначение

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

{{ template "mychart.notes" . }}

Практическое правило

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

Выполните рендеринг для проверки

Выполните helm template . и проверьте, что частичный шаблон раскрылся с ожидаемыми отступами. Неправильное выравнивание YAML — классическая ошибка в этом месте.

helm template my-release .

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

Вам нужно отрендерить частичный шаблон и добавить к нему отступ под ключом labels. Какое действие подойдёт?

Итоги: template и include

Оба действия вызывают частичные шаблоны, но include возвращает строку, которую можно передать дальше по конвейеру, а template только выводит её непосредственно. Для аккуратного YAML используйте include вместе с nindent. ✨

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

Урок «Вставка частичных шаблонов с template и include» бесплатный?

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

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

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

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

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

Сколько времени занимает урок «Вставка частичных шаблонов с template и include»?

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

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

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

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

  1. Определение частичного шаблона с define
  2. Вставка частичных шаблонов с template и include
  3. Стандартные помощники Fullname и Labels
  4. Передача области видимости в именованный шаблон
← Назад к Helm Academy