Skip to main content

Customize List Command Output to Explore Your Cloud Architecture

· 3 min read
Erik Osterman
Founder @ Cloud Posse

Atmos lets you model your cloud architecture, so why shouldn't you be able to easily explore that? This is especially a pain point for people new to a team who just want to see what exists without having to understand your complete cloud architecture. Atmos List makes that possible.

We've enhanced all column-supporting list commands (instances, components, stacks, workflows, vendor) to support customizable output columns via atmos.yaml configuration.

The Problem​

When exploring a new infrastructure codebase, you're often overwhelmed with questions:

  • What components are deployed in production?
  • Which stacks use a specific component?
  • What's the region and environment for each deployment?

Running atmos list instances gives you raw data, but not the specific view you need to answer these questions quickly.

The Solution​

Configure custom columns in atmos.yaml to show exactly what your team needs:

# atmos.yaml
components:
list:
columns:
- name: Stack
value: "{{ .stack }}"
- name: Component
value: "{{ .component }}"
- name: Region
value: "{{ .vars.region }}"
- name: Environment
value: "{{ .vars.environment }}"
- name: Stage
value: "{{ .vars.stage }}"
- name: Description
value: "{{ .metadata.description }}"

Now atmos list instances shows a clean, team-specific view:

atmos list instances
┌─────────────────────┬───────────┬───────────┬─────────────┬──────┬────────────────────────┐
│ Stack │ Component │ Region │ Environment │ Stage│ Description │
├─────────────────────┼───────────┼───────────┼─────────────┼──────┼────────────────────────┤
│ plat-ue2-prod │ vpc │ us-east-2 │ ue2 │ prod │ Production VPC │
│ plat-ue2-prod │ eks │ us-east-2 │ ue2 │ prod │ Production EKS cluster │
│ plat-uw2-staging │ vpc │ us-west-2 │ uw2 │ stage│ Staging VPC │
└─────────────────────┴───────────┴───────────┴─────────────┴──────┴────────────────────────┘

Practical Examples​

Find All Production Infrastructure​

Filter by stack pattern and see critical details:

atmos list instances --stack "*-prod" --columns "component,vars.region,enabled"

Explore Vendored Dependencies​

See what external components you're using:

# atmos.yaml
vendor:
list:
columns:
- name: Component
value: "{{ .component }}"
- name: Source
value: "{{ .source | truncate 50 }}"
- name: Version
value: "{{ .version }}"
atmos list vendor
┌───────────┬──────────────────────────────────────────────────┬─────────┐
│ Component │ Source │ Version │
├───────────┼──────────────────────────────────────────────────┼─────────┤
│ vpc │ github.com/cloudposse/terraform-aws-vpc │ 1.5.0 │
│ eks │ github.com/cloudposse/terraform-aws-eks │ 2.0.0 │
└───────────┴──────────────────────────────────────────────────┴─────────┘

Audit Workflows​

See all available automation:

# atmos.yaml
workflows:
list:
columns:
- name: Workflow
value: "{{ .name }}"
- name: File
value: "{{ .file }}"
- name: Steps
value: "{{ .steps | len }} steps"

Use Template Functions​

Transform data with built-in functions:

components:
list:
columns:
- name: Component
value: "{{ .component | upper }}"
- name: Status
value: "{{ if .enabled }}✓ Enabled{{ else }}✗ Disabled{{ end }}"
- name: Short Description
value: "{{ .metadata.description | truncate 40 }}"

Override from CLI​

Need a different view for a one-off query? Override columns via CLI:

# Quick component-stack view
atmos list instances --columns stack,component

# Region-specific query
atmos list instances --columns "component,vars.region,vars.account_id"

What's Supported​

Column customization is available for:

  • ✅ atmos list instances - All component instances across stacks
  • ✅ atmos list components - Components in your project
  • ✅ atmos list stacks - Stack configurations
  • ✅ atmos list workflows - Available workflows
  • ✅ atmos list vendor - Vendored dependencies

Each command has access to its own template context with fields like .stack, .component, .vars.*, .settings.*, .metadata.*, and more.

Learn More​

Make exploring your cloud architecture as easy as modeling it. Configure your columns once, and every team member gets the view they need.