0Pricing
Helm Academy · Урок

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 — локальная установка не требуется.

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

  1. Глубокое объединение с mergeOverwrite и dict
  2. tpl: рендеринг строк из значений
  3. Циклический перебор файлов с помощью range и .Files.Glob
  4. fail и пользовательские проверки
← Назад к Helm Academy