lefev
12/05/2025, 1:26 AM# Vendor manifest for component management
apiVersion: atmos/v1
kind: AtmosVendorConfig
metadata:
name: component-vendoring
description: Vendor configuration for infrastructure components
spec:
# Source specifications
sources:
- component: acm
source: "<http://github.com/cloudposse-terraform-components/aws-{{.Component}}.git?ref={{.Version}}|github.com/cloudposse-terraform-components/aws-{{.Component}}.git?ref={{.Version}}>"
version: "v2.0.0"
targets:
- "components/terraform/{{.Component}}"
included_paths:
- "**/*.tf"
- "**/*.tfvars"
- "README.md"
- "LICENSE"
excluded_paths:
- "examples/**"
- "test/**"
- ".github/**"
- component: account-map
source: "<http://github.com/cloudposse-terraform-components/aws-{{.Component}}.git?ref={{.Version}}|github.com/cloudposse-terraform-components/aws-{{.Component}}.git?ref={{.Version}}>"
version: "v1.536.1"
targets:
- "components/terraform/acm/{{.Component}}"
included_paths:
- "**/*.tf"
- "**/*.tfvars"
- "README.md"
- "LICENSE"
excluded_paths:
- "examples/**"
- "test/**"
- ".github/**"
Which has led to the following directory structure:
components/terraform/acm/
├── account-map
│ ├── README.md
│ └── src
| └── ... Omitted ...
├── backend.tf.json
├── providers_override.tf.json
├── README.md
└── src
├── backend.tf.json
├── <http://context.tf|context.tf>
├── ... Omitted ...
This has the following issues:
• All the terraform files are in a src/ subdirectory which means I need to reference the components as acm/src . Not a huge deal, just annoying, but leads to the bigger issue below.
• The acm component has some sort of implicit dependency on account-map expecting it to be at ../account-map. This may be a bug in of itself but my attempt to fix this by vendoring account-map component inside the acm component hasn't worked due to the vendoring putting the files inside src/
Is there any way to prevent vendoring placing the files under the src/ directory? If not is the expected way to use vendored components by defining them as component: acm/src?
Or is this just a bug in the acm component that needs to be fixed?Erik Osterman (Cloud Posse)
12/05/2025, 2:18 AMErik Osterman (Cloud Posse)
12/05/2025, 2:18 AM//src to vendor a subfolderlefev
12/05/2025, 3:29 AMJonathan Rose
12/09/2025, 8:36 PMimport:
- cloudposse/aws-eks-argocd:v2.4.1
The above would imply that the underlying component is vendored from cloudposse-terraform-components/aws-eks-argocd: This component is responsible for provisioning Argo CD. anything provided after : would get a specific release, otherwise get latestErik Osterman (Cloud Posse)
12/09/2025, 9:21 PMmetadata.sourceErik Osterman (Cloud Posse)
12/09/2025, 9:22 PMimport is for stack configurations (that contain components).Erik Osterman (Cloud Posse)
12/09/2025, 9:23 PMJonathan Rose
12/09/2025, 9:23 PMatmos import could automatically pull external sourcesJonathan Rose
12/09/2025, 9:24 PMatmos vendor pull run automatically if the component doesn't exist on the local filesystemErik Osterman (Cloud Posse)
12/09/2025, 9:25 PMimport:
- name: vpc/1
source: <terraform://cloudposse/aws-vpc//src@v1.2.3>
- name: vpc/2:
source: <terraform://cloudposse/aws-vpc//src@v1.2.4>
components:
terraform:
vpc/1:
vars:
something: trueJonathan Rose
12/09/2025, 9:27 PMterraform:// implies use of terraform registry?Erik Osterman (Cloud Posse)
12/09/2025, 9:28 PMcomponents:
terraform:
vpc/1:
metadata.source: <https://github.com/cloudposee-terraform-components/aws-vpc//src@v1.2.4>
vars:
something: trueJonathan Rose
12/09/2025, 9:28 PMErik Osterman (Cloud Posse)
12/09/2025, 9:31 PMErik Osterman (Cloud Posse)
12/09/2025, 9:31 PMErik Osterman (Cloud Posse)
12/09/2025, 9:31 PMErik Osterman (Cloud Posse)
12/09/2025, 9:32 PMJonathan Rose
12/09/2025, 9:37 PMErik Osterman (Cloud Posse)
12/09/2025, 9:50 PMErik Osterman (Cloud Posse)
12/09/2025, 9:51 PMErik Osterman (Cloud Posse)
12/09/2025, 9:51 PMErik Osterman (Cloud Posse)
12/09/2025, 9:51 PM