-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
compute version field in Check, use 3-way diff #2672
Conversation
Does the PR have any schema changes?Looking good! No breaking changes found. |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #2672 +/- ##
==========================================
- Coverage 18.52% 18.42% -0.11%
==========================================
Files 47 47
Lines 9643 9587 -56
==========================================
- Hits 1786 1766 -20
+ Misses 7753 7722 -31
+ Partials 104 99 -5 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Proposed changes
This PR stabilizes Helm upgrades by abandoning the use of checksums (which was added in v4.5.0, see PR), while allowing for local chart change detection via the chart's version number. That is, the user is now expected to touch the chart's version to compel Pulumi to roll out the change.
Implementation-wise, this is accomplished by resolving the
version
property duringCheck
. The checked input reflects the goal version, and if the goal has changed, thenDiff
detects this in the natural way and effects an upgrade.Check
no longer useshelm template
to render the chart, it simply resolves the chart version.The diff logic is improved here to use a three-way merge, to be able to detect drift in the actual Helm release.
The refresh logic is improved to not mutate inputs (as was done in the past to help with drift detection).
Demonstration
This video clip demonstrates:
checksum
.checksum
property is gone and the diff logic forversion
property compares new input to old state.version
.helm upgrade
and thenpulumi refresh
such that Pulumi sees the change.Note that the demo app doesn't set the
version
property, it relies on the new logic inCheck
to resolve the version.issue-2649-low.mov
Summary of Old/New Behavior
Old:
UpdateNew:
Related issues (optional)
Closes #2649