Vendor Configuration
The vendor section in atmos.yaml configures how Atmos discovers and processes vendor manifest files for dependency management.
Configuration
Configuration Reference
base_pathPath to the vendor manifest file or directory containing vendor files. Can be a single
vendor.yamlfile or a directory containing multiple.yamlfiles.When a directory is specified, all
.yamlfiles in the directory are processed in lexicographical order.Default:
vendor.yamlExamples:
vendor.yaml- Single manifest file./vendor.yaml- Explicit relative pathvendor/- Directory containing multiple manifests
list.formatOutput format for the
atmos vendor listcommand.Valid values:
table,json,csvDefault:tablelist.columnsCustom column definitions for table output. Each column has a
name(header) andvalue(Go template expression).Available template variables:
{{ .component }}- Component name{{ .source }}- Source URL{{ .version }}- Version tag{{ .targets }}- Target paths{{ .tags }}- Associated tags
retryGlobal 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
lock_fileThe vendor lock file. It records a per-file SHA-256 receipt for every artifact vendored through
vendor.yamlorcomponent.yaml. Theatmos vendor verifycommand checks this file for drift;atmos vendor pullandatmos vendor update --pullwrite to it.Default:
vendor.lock.yamllock.enforcementHow
atmos vendor pullreacts when a package's on-disk state no longer matches itsvendor.lock.yamlreceipt.Valid values:
warn— re-fetch the drifted package and print one warning per package naming why it drifted.silent— re-fetch the drifted package with no reporting.strict— refuse to run (before any fetch/copy/write) when a drifted package is found and--refresh-lockwas not explicitly passed, naming every drifted package and its reason.
Default:
warnOverride per invocation with
--lock-enforcement <strict|warn|silent>onatmos vendor pulloratmos vendor update --pull.
Component Updater Configuration
The vendor.update and vendor.ci sections configure atmos vendor update --pull-request — see
Native Pull Requests for Vendored Component Updates
for the full workflow and a worked example.
update.execution.modeThe default,
current, runs the whole cycle — discover, branch, commit, push — in the invoking checkout. Theworktreemode runs it in an isolated linked Git worktree instead. The invoking checkout stays untouched, which helps when other steps in the same job need an unmodified checkout.update.batching.mode- The only supported value is
scope: one branch and one PR for the whole update run. Per-component batching (one PR per updated component) isn't implemented yet. update.groups.<name>Selects components for
--group <name>. Each group hasincludeand optionalexcludeglob lists against component paths; exclusions win.ci.pull_request.provider- Pull request provider. Valid values:
github. Default:github. ci.pull_request.base_branch- Base branch for the pull request. Default: the remote's advertised default branch.
ci.pull_request.branch_prefix- Prefix for the deterministic branch name. Default:
atmos/component-updater. ci.pull_request.title/ci.pull_request.bodyGo templates rendered with
.scope.nameand.updates(seemarkdownTablein the example above). Title default:"chore(components): update {{ .scope.name }}". Body default: the Atmos CI badge, a one-line "Automated byatmos vendor update --pull-request" note, and{{ .updates | markdownTable }}— not just the bare table on its own.ci.pull_request.labels/.reviewers/.assignees- Atmos applies these additively on every reconciliation. Default label:
[component-update]. ci.pull_request.draft- Create the pull request as a draft. Default:
false. ci.summary.enabled- Whether to write a GitHub Actions step summary. Default:
true.
A default GITHUB_TOKEN won't trigger downstream on: pull_request/on: push Actions workflows.
Pair the Component Updater with the github/sts
auth integration to get a token that does. See
atmos vendor update's token precedence notes for details.
Vendor Manifest Structure
The vendor manifest file defines external dependencies to pull into your project:
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 processes files in alphabetical order: aws.yaml, then common.yaml, then kubernetes.yaml.
Related Commands
Vendor Atmos components and stacks
Pull dependencies from vendor manifest
Check vendored files against vendor.lock.yaml
Remove lock-owned vendored files
Try It
Explore a working example that demonstrates vendor configuration.