Introducing Structured Component Dependencies
Atmos now supports a new dependencies.components format for declaring explicit component dependencies with support for cross-type dependencies, file/folder watching, and stack templates.
Declare component dependencies explicitly with the new structured format that supports cross-type dependencies, file/folder watching, and dynamic stack templates.
What Changed
The new dependencies.components section provides a structured way to declare component dependencies:
components:
terraform:
app:
dependencies:
components:
- component: vpc
- component: rds
stack: "{{ .vars.tenant }}-{{ .vars.environment }}-prod"
- kind: file
path: configs/app.json
Key Features
- Cross-type dependencies: Terraform components can depend on Helmfile components using the
kindfield - File/folder watching: Trigger rebuilds when config files change with
kind: fileorkind: folder - Template support: Dynamic stack references with Go templates
- Inheritance: Dependencies are replaced during stack inheritance by default, or appended when
list_merge_strategy: appendis configured
Cross-Type Dependencies
The kind field allows you to declare dependencies on components of different types:
components:
terraform:
app:
dependencies:
components:
- component: vpc # terraform (default)
- component: nginx-ingress
kind: helmfile # helmfile component
stack: platform-stack
File and Folder Dependencies
Track external files and folders that affect your component:
components:
terraform:
lambda:
dependencies:
components:
- component: vpc
- kind: file
path: configs/lambda-settings.json
- kind: folder
path: src/lambda/handler
Coming Soon
In Q1 2026, we're adding automatic dependency detection from YAML functions. Dependencies will be inferred automatically from !terraform.output and !terraform.state usage—no manual configuration needed.
Get Started
See the Component Dependencies documentation for complete details.
