Full Template and YAML-Function Control for `atmos list`
Every atmos list subcommand that processes stack manifests now accepts --process-templates and --process-functions
(with matching ATMOS_PROCESS_TEMPLATES / ATMOS_PROCESS_FUNCTIONS env vars), matching the flag surface of
atmos describe affected and atmos describe stacks. Defaults are true across the board.
What Changed
Five commands gained the two flags:
atmos list instancesatmos list componentsatmos list metadataatmos list sourcesatmos list stacks
atmos list affected, atmos list settings, and atmos list values (plus its list vars alias) already had them;
the naming, defaults, and env-var bindings now line up with the rest of the list family and with describe affected / describe stacks / describe component.
Why This Matters
The two flags control two different things, and the distinction finally matches what's actually happening:
--process-templatestoggles Go template processing — including theatmos.Component(...)template function.--process-functionstoggles YAML functions —!terraform.state,!terraform.output,!store,!aws.*, and friends.
Before this release, the flag descriptions and docs conflated the two. If you wanted to run atmos list instances --upload
in CI against a repo where component sections call atmos.Component(...) inside Go templates,
you had no user-facing dial — the combination was pinned to processTemplates=true, processYamlFunctions=false,
and the upload path would fail with No valid credential sources found when Terraform tried to read a remote backend.
Now you can mix and match:
# CI upload with full processing (default)
atmos list instances --upload
# Skip terraform-dependent functions in environments without `tofu`
atmos list instances --process-functions=false
# Tabular listing without template expansion (cheaper, no atmos.Component calls)
atmos list components --process-templates=false
Both flags accept true / false explicitly and can be set via ATMOS_PROCESS_TEMPLATES / ATMOS_PROCESS_FUNCTIONS in CI.
How to Use It
Defaults (true) cover the common case — no flags needed for CI uploads:
atmos list instances --upload
Use the flags (or env vars) to opt out when you need to:
# Skip YAML functions — no `tofu` / `terraform` on $PATH locally
atmos list instances --process-functions=false
# Skip templates too, for the lightest stack pass
atmos list components --process-templates=false --process-functions=false
# Same knobs via env, handy in CI workflows
ATMOS_PROCESS_FUNCTIONS=false atmos list instances
If you're running locally without tofu / terraform on $PATH and hit errors from !terraform.state or !terraform.output, flip --process-functions=false — templates that don't touch terraform outputs still render correctly.
Docs for each command list the two flags in full: see atmos list instances, atmos list components, atmos list metadata, atmos list sources, and atmos list stacks.
For usage and configuration, see List Command Configuration.
Get Involved
Found an issue or have a feature request? Open an issue on GitHub.
