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 }}"

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

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.