Proposal: Use Stack Filesystem Layout That Follows AWS Organization Conventions
Date: 27 May 2022
Needs Update!
The content in this ADR may be out-of-date and needing an update. For questions, please reach out to Cloud Posse
- The proposal has already been adopted, and this ADR needs to be updated to reflect the final decision.
Status
DRAFT
Decision
Use Option 4: Use an organization directory.
Problem
We have stacks defined all over the place. It’s not clear what is a top-level stack and what is imported. It’s not clear where to define something and where a service is deployed. There are too many ways to do things and we haven’t standardized how we organize configurations across customers.
Context
Considered Options
Option 1: Current
-
stacks/catalog -
stacks/<tenant> -
stacks/<env>
✗ tree -L 2 stacks
stacks
├── catalog
│ ├── account-map.yaml
│ ├── ...
│ └── waf.yaml
├── core
│ ├── gbl
│ ├── globals.yaml
│ ├── ue1
│ └── ue2
├── gbl
│ ├── artifacts.yaml
│ ...
│ └── staging.yaml
├── globals.yaml
├── plat
│ ├── gbl
│ ├── globals.yaml
│ └── ue2
├── ue1
│ └── globals.yaml
└── ue2
├── audit.yaml
...
└── staging.yaml
Option 2: Put region within catalog
-
stacks/catalog/<env> -
stacks/<tenant>