Отобразить результат шаблонизации отдельного файла
Если вы хотите посмотреть результат рендеринга только для конкретного файла шаблона (например, при отладке одного ресурса) или нескольких файлов, используйте флаг -s, --show-only=[]
, например:
$ werf render -s .helm/charts/frontend/templates/deployment.yaml
---
# Source: demo-app/charts/frontend/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
meta.helm.sh/release-name: demo-app
meta.helm.sh/release-namespace: demo-app
...
Вычислить и отобразить все сервисные Values
Иногда нужно понять, какие service values
передаются в шаблоны от werf. Для этого используется команда werf helm get-autogenerated-values
, например:
$ werf helm get-autogenerated-values
global:
werf:
name: demo-app
version: v2.36.4
werf:
commit:
date:
human: 2025-05-21 14:39:58 +0300 +0300
unix: 1747827598
hash: 577ec7a7caf4d5f94d5cf05df5c0fb74f5a8b6ac
image:
backend: REPO:TAG
frontend: REPO:TAG
is_stub: true
name: demo-app
namespace: demo-app
repo: REPO
stub_image: REPO:TAG
tag:
backend: TAG
frontend: TAG
version: v2.36.4
Специальные отладочные функции
Флаг --debug-templates
включает расширенный режим отладки Go-шаблонов в werf.
В этом режиме:
- Часть ошибок становится более подробной, включая дополнительный контекст, который скрыт в обычном режиме.
- Становятся доступны специальные функции для отладки шаблонов.
- Появляется возможность вывода отладочной информации в лог без влияния на результат шаблонизации.
Подробный формат ошибок включается при использовании
--debug-templates
, но отключён в обычном режиме, чтобы пользователь случайно не раскрыл потенциально чувствительные данные (например, секреты или внутренние значения).
Ниже приведены сценарии, в которых эти функции могут быть полезны, а также их поведение в зависимости от режима отладки.
Отобразить произвольную строку в логе
Вы можете вставить сообщения в лог на произвольных этапах шаблонизации с помощью printf_debug
. Это удобно для отслеживания значений переменных, выполнения условий и порядка шаблонизации.
- С
--debug-templates
: сообщение выводится в лог, не влияет на результат шаблонизации; - Без
--debug-templates
: функция ничего не делает.
Пример:
{{ printf_debug (printf "Current value: %v" .Values.someVar) }}
Отобразить дамп любой структуры в логе
Если нужно увидеть значение переменной, особенно сложной (например, .Values
или $
), используйте dump_debug
.
- С
--debug-templates
: структура значения логируется в человекочитаемом виде, не влияет на результат шаблонизации; - Без
--debug-templates
: функция ничего не делает.
Пример:
{{ dump_debug $.Values.werf }}
Отладка функции include
Для отладки функций include
, замените их на include_debug
и включите режим отладки шаблонов с --debug-templates
. Теперь, во время шаблонизации, в логах будет отображаться отладочная информация о каждом вызове include
.
- С
--debug-templates
: работает какinclude
, но также логирует имя шаблона, его содержимое и результат его шаблонизации; - Без
--debug-templates
: работает как обычныйinclude
.
Пример:
{{ include_debug "my-template" . }}
Отладка функции tpl
Для отладки функций tpl
, замените их на tpl_debug
и включите режим отладки шаблонов с --debug-templates
. Теперь, во время шаблонизации, в логах будет отображаться отладочная информация о каждом вызове tpl
.
- С
--debug-templates
: работает какtpl
, но также логирует переданную строку-шаблон и результат шаблонизации; - Без
--debug-templates
: работает как обычныйtpl
.
Пример:
{{ tpl_debug "{{ .Values.env }}" . }}