DevOps Bootcamp · Урок

Передача области видимости в именованный шаблон

Передавайте частичному шаблону правильный объект контекста

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

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

Частичным шаблонам нужен контекст

Именованный шаблон может прочитать только то, что Вы ему передали. Второй аргумент include — это область видимости, которую частичный шаблон увидит внутри.

{{ include "mychart.labels" . }}

Точка задаёт область видимости

Последняя точка — это текущий контекст. Передача корневой точки даёт частичному шаблону доступ к .Values, .Release и .Chart.

Без области видимости всё ломается

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

{{ include "mychart.name" }}

Передача корневого контекста

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

{{ include "mychart.fullname" . }}

Передача вложенного объекта

Иногда частичному шаблону нужна только одна часть значений. Вы можете передать ему поддерево, чтобы его точка указывала именно на этот фрагмент.

{{ include "mychart.ports" .Values.service }}

Внутри точка меняется

Когда Вы передаёте .Values.service, точка частичного шаблона теперь указывает на этот объект. Он обращается непосредственно к .port, а не к .Values.service.port.

{{- define "mychart.ports" -}}
port: {{ .port }}
{{- end -}}

Намеренный отказ от корня

Сужение области видимости удобно, но лишает Вас доступа к .Release и глобальным значениям. Частичный шаблон видит только переданный ему объект.

Передайте оба значения через dict

Нужно передать и поддерево, и корень? Создайте небольшой dict и передайте его, а затем обращайтесь внутри частичного шаблона к каждой части по её ключу.

{{ include "mychart.tpl" (dict "top" . "svc" .Values.service) }}

Чтение объединённой области видимости

Внутри частичного шаблона распакуйте dict по ключам. Теперь у Вас одновременно есть корень через .top и поддерево через .svc.

{{- define "mychart.tpl" -}}
name: {{ .top.Release.Name }}
port: {{ .svc.port }}
{{- end -}}

Ошибки области видимости встречаются часто

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

Выполните рендеринг для проверки области видимости

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

helm template my-release .

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

Частичному шаблону нужны и поддерево, и .Release.Name. Как передать оба значения?

Итоги: передача области видимости

Аргумент после имени частичного шаблона задаёт его точку. Передайте корневую точку, поддерево или dict, чтобы объединить оба значения. Неправильная область видимости приводит к пустому результату. 🎯

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

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

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

Курсы
142
Уроки
568

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

Урок «Передача области видимости в именованный шаблон» бесплатный?

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

Чему я научусь в уроке «Передача области видимости в именованный шаблон»?

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

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

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

Сколько времени занимает урок «Передача области видимости в именованный шаблон»?

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

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

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

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

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