Configure Component Provisioning
The provision section controls automatic, just-in-time creation of supporting infrastructure (Terraform state backends) and execution environments (isolated workdirs) before component commands run. Use it to remove manual bootstrap steps and to enable safe concurrent execution.
Two Independent Capabilities
Component provisioning is split into two focused capabilities you can enable independently:
📄️ Backend Provisioning
Automatically create the Terraform state backend (S3 bucket, lockfile) the first time a component runs.
📄️ Workdir Provisioning
Run each component instance in its own isolated working directory under .workdir/ for safe concurrent execution.
Use Cases
- Backend Bootstrap — Eliminate the chicken-and-egg problem of needing a state backend before you can deploy the component that creates it. See Backend Provisioning.
- Isolated Execution — Run multiple components in parallel without
.terraform/, lockfile, or varfile collisions. See Workdir Provisioning. - Just-in-Time Source Provisioning — Fetch remote component sources on demand into a per-instance workdir on fresh CI runners. See Workdir Provisioning.
Configuration Scope
The provision block can appear at three levels and is deep-merged across them. Lower levels override higher levels, so a component can opt out of any default by setting enabled: false.
| Level | Path | Applies To |
|---|---|---|
| Global | settings.provision in atmos.yaml | Every component, every stack (workdir only today) |
| Toolchain | terraform.provision, helmfile.provision, packer.provision, ansible.provision | Every component of that toolchain |
| Component | components.<type>.<name>.provision | A single component instance |
Schema Summary
components:
terraform:
vpc:
provision:
backend:
enabled: true # See: Backend Provisioning
workdir:
enabled: true # See: Workdir Provisioning
| Key | Applies To | Documentation |
|---|---|---|
provision.backend.enabled | Terraform components only | Backend Provisioning |
provision.workdir.enabled | Terraform, Helmfile, Packer, Ansible | Workdir Provisioning |
Related
- Terraform Backend Configuration — The separate
backend:block that describes where state is stored. - Settings: Provision Defaults — Global workdir defaults in
atmos.yaml. atmos terraform workdir— CLI commands for managing workdirs.atmos terraform backend— CLI commands for backend management.