Can anyone recommend a model for dealing with versioned cloud resources?
For example, AWS EC2 image builder recipes are designed to allow old versions to remain. When you make changes, a new version of the same recipe is supposed to be added.
In Pulumi, you don't need to do this, since that's what your SCM is for: if you want an old version of your image, check out an old version of the code and run
But it would be quite nice to have those old versions tracked by Pulumi. But the only ways I can think of doing that are
1) Using automation-api to remove old versions from the state, so that Pulumi doesn't delete them, or
2) Keeping old image builder code in new Pulumi app code, and letting the state grow to include all verisons.
Option 1) means I can't easily delete recipes (since Pulumi only knows about the current version, and referential integrity will mean AWS refuses to delete the recipe until all its versions are deleted).