Skip to main content

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.

Experimental

Two Independent Capabilities

Component provisioning is split into two focused capabilities you can enable independently:

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.

LevelPathApplies To
Globalsettings.provision in atmos.yamlEvery component, every stack (workdir only today)
Toolchainterraform.provision, helmfile.provision, packer.provision, ansible.provisionEvery component of that toolchain
Componentcomponents.<type>.<name>.provisionA single component instance

Schema Summary

components:
terraform:
vpc:
provision:
backend:
enabled: true # See: Backend Provisioning
workdir:
enabled: true # See: Workdir Provisioning
KeyApplies ToDocumentation
provision.backend.enabledTerraform components onlyBackend Provisioning
provision.workdir.enabledTerraform, Helmfile, Packer, AnsibleWorkdir Provisioning