Skip to main content

Introducing Structured Component Dependencies

· 2 min read
Erik Osterman
Founder @ Cloud Posse

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 kind field
  • File/folder watching: Trigger rebuilds when config files change with kind: file or kind: folder
  • Template support: Dynamic stack references with Go templates
  • Inheritance: Dependencies are replaced during stack inheritance by default, or appended when list_merge_strategy: append is 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.