Skip to main content

Component Configuration

The components section in atmos.yaml defines how Atmos locates and executes your infrastructure components. Each component type (Terraform, Helmfile, Kubernetes, Packer, Ansible) has its own configuration for paths, providers, commands, and behaviors.

important

Do not confuse this CLI configuration with configuring components in stacks. This configuration is defined in atmos.yaml and specifies default behaviors like what command to run and where components are located.

Supported Component Types

Atmos supports these built-in component types:

Terraform
Infrastructure as Code for cloud resources using Terraform or OpenTofu.
Helmfile
Kubernetes package management for deploying Helm charts.
Kubernetes

SDK-backed Kubernetes manifest rendering, diffing, applying, and deleting.

Packer
Machine image building for AMIs, VM images, and container images.
Ansible
Configuration management and infrastructure automation using Ansible playbooks.

Configuration Structure

Each component type is configured under the components section:

atmos.yaml
components:
terraform:
base_path: components/terraform
command: terraform
# ... terraform-specific settings

helmfile:
base_path: components/helmfile
command: helmfile
# ... helmfile-specific settings

helm:
base_path: components/helm
# ... native Helm-specific settings

kubernetes:
base_path: components/kubernetes
provider: kubectl
# ... kubernetes-specific settings

packer:
base_path: components/packer
command: packer
# ... packer-specific settings

ansible:
base_path: components/ansible
command: ansible
# ... ansible-specific settings

Common Configuration Options

All component types share these common configuration options:

base_path
Directory path where components of this type are located. Supports absolute and relative paths. Relative paths are resolved from base_path in the root configuration.
command
Executable to run for binary-backed component types. Can be a command name (resolved via PATH) or an absolute path to a binary. SDK-backed component types such as Kubernetes do not use this option.