Отображение результата шаблонизации
Команда werf config render отображает результат шаблонизации werf.yaml или конкретного образа/ов.
$ werf config render
project: demo-app
configVersion: 1
---
image: backend
dockerfile: backend.Dockerfile
$ werf config render backend
image: backend
dockerfile: backend.Dockerfile
Получить имена всех собираемых образов
Команда werf config list выводит список всех образов, определённых в итоговом werf.yaml.
$ werf config list
backend
frontend
Флаг --final-images-only выведет список только конечных образов. Подробнее ознакомится с конечными и промежуточными образами можно здесь
Анализ зависимостей между образами
Команда werf config graph строит граф зависимостей между образами для всех или только определённых.
$ werf config graph
- image: images/argocd
dependsOn:
dependencies:
- images/argocd-source
- image: images/argocd-operator
dependsOn:
from: common/distroless
import:
- images/argocd-operator-artifact
- image: images/argocd-operator-artifact
- image: images/argocd-artifact
- image: images/argocd-source
dependsOn:
import:
- images/argocd-artifact
- image: common/distroless-artifact
- image: common/distroless
dependsOn:
import:
- common/distroless-artifact
- image: images-digests
dependsOn:
dependencies:
- images/argocd-operator
- images/argocd
- common/distroless
- image: python-dependencies
- image: bundle
dependsOn:
import:
- images-digests
- python-dependencies
- image: release-channel-version-artifact
- image: release-channel-version
dependsOn:
import:
- release-channel-version-artifact
$ werf config graph images-digests
- image: images-digests
dependsOn:
dependencies:
- images/argocd-operator
- images/argocd
- common/distroless
Специальные отладочные функции
Флаг --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 }}" . }}