Vendor Configuration
The vendoring configuration is defined in the vendor.yaml manifest (vendor config file). The vendoring manifest is used to make copies of 3rd-party components, stacks, and other artifacts in your own repository.
It functions a little bit like the packages.json file in Node.js or the go.mod file in Go, but for infrastructure code.
How it works
Atmos searches for the vendoring manifest in the following locations and uses the first one found:
-
In the directory from which the
atmos vendor pullcommand is executed, usually in the root of the infrastructure repo -
In the directory pointed to by the
base_pathsetting in theatmos.yamlCLI config file
After defining the vendor.yaml manifest, all the remote artifacts can be downloaded by running the following command:
atmos vendor pull
To vendor a particular component or other artifact, execute the following command:
atmos vendor pull -c <component>
To vendor components and artifacts tagged with specific tags, execute the following command:
atmos vendor pull --tags <tag1>,<tag2>
Refer to atmos vendor pull CLI command for more details
Vendoring Manifest
To vendor remote artifacts, create a vendor.yaml file similar to the example below:
vendor.yaml
With this configuration, it would be possible to run the following commands:
Configuration Reference
The vendor.yaml vendoring manifest supports Kubernetes-style YAML config. The file is placed into the directory from which the atmos vendor pull command is executed (usually the root of the repo).
apiVersion- Always set to
atmos/v1. kind- Always set to
AtmosVendorConfig. metadataOptional metadata about the vendor configuration.
name: A name for this vendor configurationdescription: A description of what this configuration vendors
spec.sources- List of sources to vendor. Each source defines a component, its source location, version, and target paths. See Sources for complete documentation.
spec.imports- List of additional vendor manifests to import. Supports hierarchical imports at many levels. See Imports for complete documentation.