Please excuse the length of this post, but I'm trying to better understand what approach to take when using Pulumi. Although I'm very familiar with cloud architecture, I'm not usually the one setting up IaC configurations.
I'm looking at Pulumi's concept of Project and Stack and it seems that one rough parallel might be App and Environment. So I might have a project for the SuperCool app and I deploy that to several different environments (stacks), like PROD, DEV, STAGING, etc. This seems pretty straight forward if I assume that all the infrastructure is roughly the same across stacks, although I may omit/add certain components depending on the environment. But what about aspects of the architecture that are shared across environments? For example a container registry that all environments need to be able to pull from? Or a database cluster that is shared amongst several non-production environments? What is the approach there? Do we just create a stack (ex. "shared") that houses those components?