Отображение результата шаблонизации
Команда 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 }}" . }}