tpl: рендеринг строк из значений
Вычисление шаблонных выражений, хранящихся в значениях
«tpl: рендеринг строк из значений» — бесплатный урок Helm Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Helm Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Helm Academy содержит 4 уроков всего.
Шаблоны внутри values
Иногда само значение в values.yaml содержит синтаксис шаблонов. По умолчанию Helm воспринимает его как обычную строку и не вычисляет её.
Знакомьтесь: функция tpl
Функция tpl принимает строку и контекст, а затем отображает эту строку как шаблон Go непосредственно в месте вызова.
{{ tpl .Values.greeting . }}Ей нужен контекст
Второй аргумент tpl — это область видимости, используемая при отображении. Передача корневой точки позволяет строке обращаться к Values и Release.
{{ tpl "Hello {{ .Release.Name }}" . }}Значение с шаблоном
Теперь пользователь может сохранить в values динамическую строку, например имя хоста, составленное из имени выпуска, и получить её развёрнутое значение во время отображения.
host: "{{ .Release.Name }}.example.com"Отображение этого значения
В шаблоне передайте это поле через tpl с корневым контекстом, чтобы превратить сохранённую замену в настоящее значение.
host: {{ tpl .Values.host . | quote }}Почему нельзя просто обратиться к нему
Прямое обращение выводит фигурные скобки как обычный текст. Только tpl действительно вычисляет встроенные директивы в сохранённой строке.
Также визуализируйте файлы
Вы также можете передавать содержимое файлов в tpl, благодаря чему встроенный файл конфигурации может содержать заполнители для конкретного выпуска.
{{ tpl (.Files.Get "config.tpl") . }}Передача собственной области видимости
Контекст не обязан быть корневым. Передайте любой dict, чтобы визуализированная строка видела именно выбранные Вами переменные.
{{ tpl .Values.msg (dict "name" "api") }}Практический пример
Чарты часто позволяют таким способом задавать шаблоны для хостов ingress или аннотаций, храня гибкую конфигурацию в values, а не в шаблонах.
Остерегайтесь ошибок
Если в сохранённой строке есть опечатка, tpl завершится с ошибкой во время визуализации, поэтому после добавления значений с шаблонами проверьте их с помощью helm template.
Сочетание с quote
Поскольку хост, заданный шаблоном, может содержать точки или двоеточия, передайте результат tpl в quote, чтобы итоговое значение YAML оставалось безопасной строкой.
host: {{ tpl .Values.host . | quote }}Быстрая проверка
Быстрая проверка работы tpl.
Итоги
Вы узнали, что tpl вычисляет строки шаблонов, сохранённые в значениях или файлах, используя переданный Вами контекст, например корневую точку. 🎉
Часто задаваемые вопросы
Урок «tpl: рендеринг строк из значений» бесплатный?
Да — полный текст урока «tpl: рендеринг строк из значений» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Helm Academy, подпишись на CoddyKit PRO. Курс Helm Academy содержит 4 уроков всего.
Чему я научусь в уроке «tpl: рендеринг строк из значений»?
Вычисление шаблонных выражений, хранящихся в значениях Ты практикуешь Helm Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Helm Academy?
Предыдущий опыт не требуется. Helm Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «tpl: рендеринг строк из значений»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Helm Academy?
Да. Каждый урок Helm Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Глубокое объединение с mergeOverwrite и dict
- tpl: рендеринг строк из значений
- Циклический перебор файлов с помощью range и .Files.Glob
- fail и пользовательские проверки