Hi all. Is there any documentation/code available that describes the differences between Pulumi outputs and Pulumi configurations, and when to use what? I've had some discussions with my colleagues on how approach certain things:
• We did split our infrastructure in separate Pulumi projects so they can be executed separately.
• However, there are some dependencies between these projects:
◦ The first project creates a GCP project
◦ the second projects creates basic networking components (VPC, subnets, etc.).
• Higher projects might require some information that was created/updated in other projects.
My colleagues propose to use the automation API and to write the information to the dependent projects' configuration so that they will retrieve the updated config during the next run. I see a few downsides here:
• As far as I understand the Pulumi config, it resides in a .yaml file so I expect that it should always be read from there and implies that it requires a Git/code commit/push/pull before it's shared. This could create weird syncing issues.
• It feels like the opposite way to manage dependencies, as the code delivering the shared data should know it's dependencies
My stance would be that you should retrieve provisioning information from the Pulumi project's state, by using the get_ functions, or by reading it from the outputs (which requires you to export it). The purpose of the Pulumi config/secrets is different than the state/outputs but I have trouble putting it into the right words to convince them.
Any tips, thoughts, links that can help us to settle the discussion? (I'm also happy to be wrong here :))
(Please let me know if I'd rather need to repost this in a specific channel)