!version
Use !version to read a locked version from the active Atmos version track.
The !version YAML function resolves a name from versions.lock.yaml. It uses the stack's asserted version.track, then version.track from atmos.yaml, then default.
Usage
!version <name>
Example
version:
track: prod
components:
terraform:
datadog-forwarder:
dependencies:
tools:
opentofu: !version opentofu
vars:
image:
tag: !version dd_forwarder
With this lock file:
version: 1
tracks:
prod:
opentofu:
version: 1.10.6
dd_forwarder:
version: 5.4.5
Atmos resolves:
dependencies:
tools:
opentofu: 1.10.6
vars:
image:
tag: 5.4.5
Embedded Strings
Use Go template context for embedded values:
vars:
image:
uri: "public.ecr.aws/datadog/lambda-extension:{{ .version.dd_forwarder }}"
Use !version when the whole YAML value is the version. Use {{ .version.name }} when the version is part of a larger string.
Pinned Entries
For entries with pin: digest (alias: sha) in their update policy, the two surfaces behave differently:
!version namealways returns the version (for example,v6.1.0) — never the digest.{{ .version.name }}emits the pinned form: the digest for pinned entries, the version otherwise. This is what rendered files and file managers embed.{{ .version.name.Version }}and{{ .version.name.Digest }}are individually addressable when you need one specific form:
vars:
image:
uri: "ghcr.io/example/app@{{ .version.app.Digest }}"
tag: "{{ .version.app.Version }}"