Передача области видимости в именованный шаблон
Передавайте частичному шаблону правильный объект контекста
«Передача области видимости в именованный шаблон» — бесплатный урок 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 — локальная установка не требуется.
Все уроки этого курса
- Определение частичного шаблона с define
- Вставка частичных шаблонов с template и include
- Стандартные помощники Fullname и Labels
- Передача области видимости в именованный шаблон