Skip to main content

Vendor Configuration

The vendor section in atmos.yaml configures how Atmos discovers and processes vendor manifest files for dependency management.

Configuration

atmos.yaml

vendor:
# Path to vendor manifest file or directory
base_path: vendor.yaml

# Configure output format for vendor list command
list:
format: table
columns:
- name: Component
value: "{{ .component }}"
- name: Version
value: "{{ .version }}"
- name: Source
value: "{{ .source }}"

# Global retry configuration for vendor operations (optional)
retry:
max_attempts: 3
initial_delay: 2s
max_delay: 30s
backoff_strategy: exponential

Configuration Reference

base_path

Path to the vendor manifest file or directory containing vendor files. Can be a single vendor.yaml file or a directory containing multiple .yaml files.

When a directory is specified, all .yaml files in the directory are processed in lexicographical order.

Default: vendor.yaml

Examples:

  • vendor.yaml - Single manifest file
  • ./vendor.yaml - Explicit relative path
  • vendor/ - Directory containing multiple manifests
list.format

Output format for the atmos vendor list command.

Valid values: table, json, csv Default: table

list.columns

Custom column definitions for table output. Each column has a name (header) and value (Go template expression).

Available template variables:

  • {{ .component }} - Component name
  • {{ .source }} - Source URL
  • {{ .version }} - Version tag
  • {{ .targets }} - Target paths
  • {{ .tags }} - Associated tags
retry

Global retry configuration for vendor operations. These settings apply to all vendor sources unless overridden at the source level.

Retry is useful for handling transient network errors, rate limiting, and other temporary failures when downloading from remote repositories.

retry.max_attempts
Maximum number of retry attempts. Default: 3
retry.initial_delay
Initial delay before the first retry. Default: 2s
retry.max_delay
Maximum delay between retries. Default: 30s
retry.backoff_strategy
Strategy for increasing delay between retries. Values: exponential, linear, constant. Default: exponential
retry.multiplier
Multiplier for exponential backoff. Default: 2.0
retry.random_jitter
Random jitter factor (0.0-1.0) to add randomness to delays. Default: 0.1
retry.max_elapsed_time
Maximum total time for all retry attempts. Default: 5m

Vendor Manifest Structure

The vendor manifest file defines external dependencies to pull into your project:

vendor.yaml

apiVersion: atmos/v1
kind: AtmosVendorConfig
metadata:
name: my-project-vendor
description: Vendor dependencies for my project
spec:
imports:
- vendor/common.yaml
sources:
- component: vpc
source: github.com/cloudposse/terraform-aws-vpc.git//src?ref={{.Version}}
version: 1.0.0
targets:
- components/terraform/vpc

- component: eks
source: github.com/cloudposse/terraform-aws-eks-cluster.git?ref={{.Version}}
version: 2.0.0
targets:
- components/terraform/eks
included_paths:
- "**/*.tf"
excluded_paths:
- "examples/**"

Multiple Manifest Files

You can organize vendor configurations across multiple files:

vendor/
├── aws.yaml # AWS-related components
├── kubernetes.yaml # Kubernetes components
└── common.yaml # Shared dependencies

atmos.yaml

vendor:
base_path: vendor/

Atmos processes files in alphabetical order: aws.yaml, then common.yaml, then kubernetes.yaml.

Try It

Explore a working example that demonstrates vendor configuration.

Example: Demo Vendoring

Pull Terraform modules from GitHub, S3, or OCI registries with pinned versions.

Learn more about Vendoring.

What You'll See

  • Vendor manifest defining component sources
  • Multiple vendor sources from GitHub
  • Version pinning with ref parameter
  • Modular vendor configs in vendor.d/

Try It

cd examples/demo-vendoring

# List available vendor sources
atmos vendor list

# Pull all vendored components
atmos vendor pull

# Pull a specific component
atmos vendor pull --component weather

Key Files

FilePurpose
vendor.yamlMain vendor manifest with component sources
vendor.d/Modular vendor configurations
vendor/Downloaded components (after atmos vendor pull)