Closed blampe closed 2 months ago
Looking good! No breaking changes found. No new resources/functions.
Attention: Patch coverage is 69.23077%
with 4 lines
in your changes missing coverage. Please review.
Project coverage is 36.64%. Comparing base (
d418c9a
) to head (0e18243
).
Files | Patch % | Lines |
---|---|---|
provider/pkg/provider/yaml/v2/yaml.go | 33.33% | 2 Missing and 2 partials :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Here's a thought-experiment to argue against taking this change.
Imagine you are deploying a third-party Chart and, over time, the chart version changes and, over time, the chart's resources change. For example, a RoleBinding
isn't needed anymore.
Now, imagine the user has marked the chart as protect
and/or retainOnDelete
. Should the user get errors over time about how the child resources cannot be deleted? Should the old RoleBinding
be "retained"? I think no.
I believe that the engine is in a better position to 'get it right'. Imagine the children aren't marked as retainOnDelete
, but the chart is, and the user attempts to delete the chart. If the engine did propagation, and if the propagation logic was applied only at deletion time, Pulumi would correctly retain all the children. In other words, an inherited retain may have a slightly different semantic, e.g. inherited only at deletion time. This would allow the internal structure of the component to vary over time without any UX issues.
@blampe can we close this PR?
Recommendation will be to use transforms to apply this to child resources.
WIP - needs tests.
Closes #3065