atmos-components
Atmos Component Architecture
Components are the building blocks of infrastructure in Atmos. Each component is an opinionated, reusable unit of infrastructure-as-code -- typically a Terraform root module -- that solves a specific problem. Atmos separates the component implementation (code) from its configuration (stack manifests), enabling one implementation to be deployed many times with different settings.
What Components Are
In Atmos, a component consists of two parts:
- Implementation -- The infrastructure code itself (a Terraform root module, Helmfile, or Packer template) stored in the
components/directory. - Configuration -- The settings that customize how the component is deployed, defined in stack manifests under the
componentssection.
This separation is fundamental: you write the Terraform module once, then configure it differently for each environment, region, and account through stack YAML files.
Component Types
Atmos natively supports three component types:
| Type | Implementation Location | Purpose |
|---|
More from cloudposse/atmos
atmos-design-patterns
Design patterns: stack organization, component catalogs, inheritance, configuration composition, version management, layered configuration
15atmos-config
Project configuration: atmos.yaml structure, all sections, discovery, merging, base paths, settings, imports, profiles
12atmos-workflows
Workflow automation: multi-step workflows, Go template support, cross-component orchestration
12atmos-helmfile
Helmfile orchestration: sync/apply/destroy/diff, Kubernetes deployments, varfile generation, EKS integration, source management
12atmos-stores
Store backends: AWS SSM, Azure Key Vault, Google Secret Manager, Redis, Artifactory configuration, hooks integration, cross-component data sharing
11atmos-stacks
Stack configuration: imports, inheritance, deep merging, locals, vars, settings, metadata, overrides
10