Skip to main content

atmos scaffold list

List all scaffold templates configured in your atmos.yaml file. This helps you discover available templates and their details before generating code.

atmos scaffold list --help
 

Usage

atmos scaffold list

This command reads the scaffold.templates section from your atmos.yaml and displays all configured templates in a formatted table.

Examples

List All Templates

$ atmos scaffold list

Available scaffold templates:

Name Source Version Description
──────────────── ────────────────────────────────────────────── ───────── ────────────────────────────────
vpc-component ./scaffolds/vpc 1.0.0 AWS VPC component template
eks-cluster ./scaffolds/eks 2.1.0 EKS cluster template
rds-instance github.com/acme/scaffolds/rds.git 1.5.0 RDS database template
microservice github.com/acme/scaffolds/microservice.git 2.0.0 Standard microservice template

Output Format

The list command displays a table with the following columns:

Name
Template identifier used with atmos scaffold generate
Source

Template location:

  • Local path: ./scaffolds/vpc
  • Git repository: github.com/org/repo.git
Version
Template version number
Description
Human-readable template description

Configuration

Templates must be configured in atmos.yaml:

scaffold:
# Optional: base path for local templates
base_path: "./scaffolds"

# Template definitions
templates:
# Local template
vpc-component:
description: "AWS VPC component template"
source: "./scaffolds/vpc"
version: "1.0.0"

# Remote Git template
eks-cluster:
description: "EKS cluster template"
source: "github.com/cloudposse/atmos-scaffolds/eks.git"
version: "2.1.0"
ref: "tags/v2.1.0"

# Another local template
rds-instance:
description: "RDS database template"
source: "./scaffolds/rds"
version: "1.5.0"

Use Cases

Discover Available Templates

Before generating code, see what templates are available:

# List templates
atmos scaffold list

# Pick one and generate
atmos scaffold generate vpc-component ./components/terraform/vpc

Verify Template Configuration

Check that your templates are properly configured:

$ atmos scaffold list

# If empty or missing templates, check atmos.yaml

Team Onboarding

New team members can quickly see standard templates:

# Show what templates the team maintains
atmos scaffold list

# Generate using team standard
atmos scaffold generate team-vpc ./components/terraform/vpc

Documentation

Generate documentation of available scaffolds:

# Redirect to file for documentation
atmos scaffold list > docs/available-scaffolds.txt

Troubleshooting

No Templates Found

No scaffold templates configured in atmos.yaml.
Add a 'scaffold.templates' section to your atmos.yaml to configure available templates.

Solution: Add templates to your atmos.yaml:

scaffold:
templates:
my-template:
description: "My template"
source: "./scaffolds/my-template"
version: "1.0.0"

Invalid Configuration

Error: templates section is not a valid configuration

Solutions:

  1. Check YAML syntax in atmos.yaml
  2. Ensure scaffold.templates is a map/object
  3. Validate each template has required fields

atmos.yaml Not Found

Error: failed to read scaffold section from atmos.yaml

Solutions:

  1. Run command from your Atmos project root
  2. Verify atmos.yaml exists
  3. Check file permissions

Tips and Best Practices

Organize Templates by Category

Group related templates in configuration:

scaffold:
templates:
# Networking templates
vpc-component:
description: "AWS VPC component"
source: "./scaffolds/networking/vpc"
version: "1.0.0"

subnet-component:
description: "AWS Subnet component"
source: "./scaffolds/networking/subnet"
version: "1.0.0"

# Compute templates
eks-cluster:
description: "EKS cluster"
source: "./scaffolds/compute/eks"
version: "2.0.0"

ec2-instance:
description: "EC2 instance"
source: "./scaffolds/compute/ec2"
version: "1.5.0"

Use Descriptive Names

Choose clear, searchable template names:

# Good - descriptive and clear
vpc-component:
description: "AWS VPC component with NAT gateway"

eks-cluster-private:
description: "EKS cluster in private subnets"

# Avoid - unclear and generic
template1:
description: "Template"

my-template:
description: "Something"

Document Template Requirements

Add detailed descriptions:

vpc-component:
description: "AWS VPC component. Requires: vpc_name, cidr_block. Optional: enable_nat_gateway, enable_dns_hostnames"
source: "./scaffolds/vpc"
version: "1.0.0"

Version Your Templates

Use semantic versioning:

vpc-component:
source: "./scaffolds/vpc"
version: "1.2.3" # major.minor.patch

Update version when making changes:

  • Major: Breaking changes (incompatible API changes)
  • Minor: New features (backward-compatible)
  • Patch: Bug fixes (backward-compatible)

Example Workflow

# 1. List available templates
$ atmos scaffold list

Name Description
──────────────── ────────────────────────
vpc-component AWS VPC component
eks-cluster EKS cluster template

# 2. Choose a template
$ atmos scaffold generate vpc-component ./components/terraform/vpc

# 3. Customize generated code
$ cd components/terraform/vpc
$ vim main.tf

# 4. Commit
$ git add .
$ git commit -m "Add VPC component from scaffold"

Learn More