werf provides a set of environment variables that enable additional debug output. They are intended for troubleshooting: their output format is not part of the stable interface and may change between releases.

Log levels

Variable Value Description
WERF_LOG_DEBUG (alias: WERF_DEBUG) boolean Same as --log-debug: enable the debug log level
WERF_LOG_VERBOSE (alias: WERF_VERBOSE) boolean Same as --log-verbose: enable the verbose log level

Topic-specific debug channels

The variables below enable narrow debug channels. Channels that write to the debug log level additionally require --log-debug (or WERF_LOG_DEBUG=1) to be visible — setting the topic variable alone is not enough. Unless stated otherwise, a variable is enabled by setting it to 1.

Build

Variable Description
WERF_DEBUG_STAGES_STORAGE Stages storage internals: storage method call traces, manifest cache operations, per-tag stage listings, selected stage and base image description dumps. Requires --log-debug
WERF_DEBUG_CONVEYOR_PHASES Build conveyor phase wrappers (BeforeImages, OnImageStage, AfterImages, etc.). Requires --log-debug
WERF_DEBUG_IMAGE_SPEC YAML snapshots of the image spec configuration (source image info, prepared and pushed config). Requires --log-debug
WERF_DEBUG_IMPORT_SERVER Rsync import server traces. Requires --log-debug
WERF_DEBUG_USER_STAGE_CHECKSUM User stage checksum calculation details. Requires --log-debug
WERF_DEBUG_IMPORT_SOURCE_CHECKSUM Import source checksum calculation details. Requires --log-debug
WERF_DEBUG_DOCKERFILE_STAGE_DEPENDENCIES Controls two channels: Dockerfile stage dependency calculation and per-match build context paths during context checksum calculation. Requires --log-debug
WERF_DEBUG_CONTAINER_RUNTIME (deprecated alias: WERF_CONTAINER_RUNTIME_DEBUG) Container backend internals: container path removal, buildah container mount/unmount, per-file checksum calculation. Requires --log-debug
WERF_DEBUG_BUILDAH (deprecated alias: WERF_BUILDAH_DEBUG) Buildah backend debug output
WERF_DEBUG_DOCKER Docker CLI debug mode
WERF_DEBUG_DOCKER_RUN_COMMAND Print full docker run commands

Git

Variable Description
WERF_DEBUG_TRUE_GIT Git command execution tracing. Requires --log-debug
WERF_DEBUG_TRUE_GIT_ARCHIVE (deprecated alias: WERF_TRUE_GIT_DEBUG_ARCHIVE) Per-file entries when creating git archives. Requires --log-debug
WERF_DEBUG_TRUE_GIT_PATCH (deprecated alias: WERF_TRUE_GIT_DEBUG_PATCH) Git patch creation debug output
WERF_DEBUG_TRUE_GIT_PATCH_PARSER (deprecated alias: WERF_TRUE_GIT_DEBUG_PATCH_PARSER) Git patch parser debug output
WERF_DEBUG_LS_TREE_PROCESS Git ls-tree traversal and per-file checksum entries. Requires --log-debug
WERF_DEBUG_GIT_STATUS Git status result details. Requires --log-debug
WERF_DEBUG_GITERMINISM_MANAGER Giterminism manager file reader operations. Requires --log-debug

Container registry

Variable Description
WERF_DEBUG_DOCKER_REGISTRY (deprecated alias: WERF_DOCKER_REGISTRY_DEBUG) Registry API call tracing and push/pull progress ticks. Requires --log-debug for the progress ticks
WERF_DEBUG_DOCKER_REGISTRY_API Debug logs of the underlying go-containerregistry library

Configuration and templates

Variable Description
WERF_DEBUG_TEMPLATES boolean; same as --debug-templates: debug mode for Go templates
WERF_DEBUG_SECRET_VALUES Debug output of secret values decoding. Requires --log-debug

Deploy

Variable Description
WERF_NELM_TRACE boolean; enable trace-level logging of the Nelm deployment engine
WERF_DEBUG_HELM_V3_EXTRA_ANNOTATIONS_AND_LABELS (deprecated alias: WERF_HELM_V3_EXTRA_ANNOTATIONS_AND_LABELS_DEBUG) Debug output of the extra annotations and labels post-renderer
WERF_SHOW_VERBOSE_DIFFS boolean, default true; same as --show-verbose-diffs in werf plan: show verbose diff lines
WERF_SHOW_VERBOSE_CRD_DIFFS boolean, default false; same as --show-verbose-crd-diffs in werf plan: show verbose CRD diff lines

Ansible builder

Variable Description
WERF_DEBUG_ANSIBLE_ARGS String with extra arguments passed to ansible-playbook
WERF_DEBUG_ANSIBLE_LIVE_PY_PATH Path to a file overriding the built-in live.py ansible callback
WERF_DEBUG_ANSIBLE_WERF_PY_PATH Path to a file overriding the built-in werf.py ansible callback

Process diagnostics

Variable Description
WERF_PRINT_STACK_TRACES Periodically print goroutine stack traces
WERF_PRINT_STACK_TRACES_PERIOD Integer number of seconds between stack trace prints (default 5); only takes effect with WERF_PRINT_STACK_TRACES=1