sparse-intern-71089
07/26/2021, 6:30 AMgreat-sunset-355
07/26/2021, 6:53 AMConfig
object.
my current approach is
core-project # for shared infra, vpc network..
app-project/
__main__.py
Pulumi.dev.yaml
Pulumi.staging.yaml
great-sunset-355
07/26/2021, 6:56 AMenvironments
├── client-test
│ ├── <http://backend.tf|backend.tf>
│ ├── <http://global-vars.tf|global-vars.tf>
│ ├── <http://main.tf|main.tf>
│ ├── terraform.tfvars
│ └── <http://variables.tf|variables.tf>
├── dev
│ ├── <http://backend.tf|backend.tf>
│ ├── <http://global-vars.tf|global-vars.tf>
│ ├── <http://main.tf|main.tf>
│ ├── terraform.tfvars
│ └── <http://variables.tf|variables.tf>
├── prod
│ ├── <http://backend.tf|backend.tf>
│ ├── <http://global-vars.tf|global-vars.tf>
│ ├── <http://main.tf|main.tf>
│ ├── terraform.tfvars
│ └── <http://variables.tf|variables.tf>
├── shared
│ ├── <http://backend.tf|backend.tf>
│ ├── <http://global-vars.tf|global-vars.tf>
│ ├── <http://main.tf|main.tf>
│ ├── terraform.tfvars
│ └── <http://variables.tf|variables.tf>
└── staging
├── <http://backend.tf|backend.tf>
├── <http://global-vars.tf|global-vars.tf>
├── <http://main.tf|main.tf>
├── terraform.tfvars
└── <http://variables.tf|variables.tf>
witty-candle-66007
07/26/2021, 1:27 PMplay
is it’s own project since it seems it can be anything and is not all that aligned with the production environment. Maybe it’s a single stack or maybe different stacks for different users to test in? Not 100% sure.
• It seems like the dev
and prod
stacks are based on the same project. And you may want to think of making dev
to be multiple stacks - one for each branch/PR before being merged to main and that main drives the prod
stack.
• As far as the question of deploying internal tools in dev vs prod, then you probably want a different project for those non-prod tools. You can use stack references to allow the main application stack to find information it needs from the internal tools stack or perhaps more likely, vice versa.
• So in the end, if the above is valid, you may have a project for the play
environment(s). And then one or more stacks to instantiate that/those play environment(s). Then a project for the dev/branch-PR/prod environments that represent the system you are deploying for your business. And then a separate project to deploy the internal tooling needed for the non-prod environments with one or more stacks depending on what makes sense.billions-ghost-96421
07/26/2021, 5:53 PMprojects | stacks:
- infra
- <org>/infra/prod
- <org>/infra/dev
- <org>/infra/play
- api
- <org>/api/prod
- <org>/api/dev/main
- <org>/api/dev/featureX
- <org>/api/dev/featureY
- <org>/api/dev/bugA
- quota
- <org>/quota/prod
- <org>/quota/dev/main
- <org>/quota/dev/featureZ
- play
- <org>/play/default
(play
is meant to be a free-for-all, anything-goes sandbox so it makes sense that that particular environment is its own project)witty-candle-66007
07/26/2021, 5:55 PMgreat-sunset-355
07/26/2021, 7:15 PMdamp-rain-39201
10/24/2022, 7:21 AMdamp-rain-39201
10/24/2022, 7:23 AM