atmos-terraform
Atmos Terraform Orchestration
Atmos wraps the Terraform CLI to provide stack-aware orchestration of infrastructure operations. Instead of manually managing workspaces, backends, variable files, and authentication for each Terraform component, Atmos resolves the full configuration from stack manifests and handles all of these concerns automatically.
How Atmos Orchestrates Terraform
When you run any atmos terraform command, Atmos performs the following sequence:
- Resolves stack configuration -- Reads and deep-merges all stack manifests to produce the fully resolved configuration for the target component in the target stack.
- Generates backend configuration -- Writes a
backend.tf.jsonfile in the component directory with the correct backend settings (S3 bucket, key, region, etc.) derived from the stack config. - Generates variable file -- Writes a
terraform.tfvars.jsonfile containing allvarsdefined for the component in the stack. - Provisions backend infrastructure -- If
provision.backend.enabled: true, creates the backend storage (e.g., S3 bucket) before Terraform init. - Runs
terraform init-- Initializes the working directory with the generated backend config. Cleans
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