Skip to main content
atmos.yaml2.6 KB
View on GitHub
# Example atmos.yaml configuration with devcontainer support
#
# Quick start:
# atmos devcontainer shell geodesic # Launch shell in Geodesic container
# atmos devcontainer start geodesic # Start Geodesic container (without attaching)
# atmos devcontainer attach geodesic # Attach to running container
# atmos devcontainer stop geodesic # Stop container
# atmos shell # Alias for 'devcontainer shell geodesic'

# Base path for components and stacks
base_path: "."

# Command aliases
aliases:
shell: "devcontainer shell geodesic"

components:
terraform:
base_path: "components/terraform"
helmfile:
base_path: "components/helmfile"

# Devcontainer configurations
# These are development environment containers, not infrastructure components
devcontainer:
# Geodesic devcontainer (replaces geodesic.sh wrapper)
geodesic:
settings:
runtime: podman # Optional: docker, podman, or omit for auto-detect
spec:
- !include devcontainer.json
- forwardPorts:
- !random 8080 8099 # Random port in web server range
- !random 3000 3099 # Random port in dev server range

# Alternative: Define inline with random port forwarding
terraform:
settings:
runtime: podman # Use Podman for this devcontainer
spec:
name: "Terraform Dev"
image: "hashicorp/terraform:1.10"
workspaceFolder: "/workspace"
workspaceMount: "type=bind,source=${localWorkspaceFolder},target=/workspace"
mounts:
- "type=bind,source=${localEnv:HOME}/.aws,target=/root/.aws,readonly"
- "type=volume,source=terraform-cache,target=/root/.terraform.d"
forwardPorts:
- !random 8080 8099 # Random port in web server range
- !random 3000 3099 # Random port in dev server range
containerEnv:
TF_PLUGIN_CACHE_DIR: "/root/.terraform.d/plugin-cache"
TERM: "${localEnv:TERM}"
remoteUser: "root"

# Python development environment with random ports
python:
spec:
name: "Python 3.11 Dev"
image: "python:3.11-slim"
workspaceFolder: "/workspace"
workspaceMount: "type=bind,source=${localWorkspaceFolder},target=/workspace"
forwardPorts:
- !random 8000 8099 # Random port for Django/Flask
- !random 5432 5442 # Random port for PostgreSQL
containerEnv:
PYTHONUNBUFFERED: "1"
remoteUser: "root"

stacks:
base_path: "stacks"
included_paths:
- "**/*"
excluded_paths:
- "**/_defaults.yaml"
name_template: "{{.vars.tenant}}-{{.vars.environment}}-{{.vars.stage}}"

Related Documentation