Skip to main content

Stack Configuration

Stacks are YAML files that configure your environments. They define which components to deploy, with what settings, and how they relate to each other. This is where configuration livesβ€”separate from your Terraform code.

Configuration Sections​

Stack manifests support various configuration sections at different scopes:

SectionDescriptionScopes
nameExplicit stack name overrideStack manifest only
varsVariables passed to componentsGlobal, component-type, component
localsFile-scoped temporary variablesGlobal, component-type, component
envEnvironment variablesGlobal, component-type, component
settingsIntegrations and metadataGlobal, component-type, component
metadataComponent behavior and inheritanceComponent only
hooksLifecycle event handlersGlobal, component-type, component
commandOverride default executableComponent-type, component
backendTerraform state storageComponent-type, component
providersTerraform provider configurationComponent-type, component
authAuthentication configurationGlobal (atmos.yaml), component

Component Types​

Atmos supports three component types, each with specific configuration options:

TypePurposeDocumentation
TerraformInfrastructure as CodeCloud resources, networking, IAM
HelmfileKubernetes deploymentsHelm chart releases
PackerMachine image buildingAMIs, VM images

Composition and Reuse​

Build maintainable configurations using these patterns:

PatternDescription
ImportsInclude configuration from other files
CatalogsReusable component configurations
InheritanceInherit settings between components
OverridesOverride inherited configuration
MixinsComposable configuration snippets
depends_onDefine component dependencies

Sharing State​

Share data between components and stacks:

TopicDescription
Remote StateAccess Terraform state from other components
Share DataShare configuration between components

Describing Stacks​

Use atmos describe stacks to view the fully computed, deep-merged configuration of any stack. This is invaluable for debugging and understanding what configuration will actually be applied.

# View all stacks
atmos describe stacks

# Filter by specific stack
atmos describe stacks --stack plat-ue2-prod

# Filter by component and section
atmos describe stacks --components vpc --sections vars

# Output as JSON for processing with jq
atmos describe stacks --format json | jq '.["plat-ue2-prod"]'

The output shows the final resolved configuration after all imports, inheritance, and overrides have been applied. Use --sections to filter output to specific sections like vars, env, settings, metadata, backend, or workspace.