Conversation
bfbdf7f to
06ed8a9
Compare
There was a problem hiding this comment.
Pull request overview
Adds regression tests around Helm values coalescing when subchart defaults contain nil, aiming to prevent nils from being preserved in final merged values (which can break pluck-style fallbacks and lead to nil stringification artifacts during rendering).
Changes:
- Add 3 unit tests covering subchart-default-nil cleanup, user
nullerasure behavior, and global fallback behavior during coalescing. - Add 1 engine-level render test intended to cover the “
%!s(<nil>)in rendered output” regression. - Minor doc comment tweaks,
.gitignoreupdate, and Go module dependency bumps.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/registry/client.go | Comment/docstring refinements for registry client options and login. |
| pkg/engine/engine_test.go | Adds an integration-style render test for subchart default nil behavior. |
| pkg/chart/common/util/coalesce_test.go | Adds regression-focused unit tests for coalescing behavior around nils. |
| go.mod | Bumps github.com/ProtonMail/go-crypto and github.com/lib/pq versions. |
| go.sum | Updates checksums corresponding to the module version bumps. |
| .gitignore | Adds .claude to ignored files. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
06ed8a9 to
cfbde43
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 5 out of 7 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
723037d to
06d510b
Compare
06d510b to
a307ce0
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a307ce0 to
ef4aec0
Compare
ef4aec0 to
a9c1b0c
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Thank you for making this contribution to fix the regression.
Note to self: The fix ensures that no null values are left behind after merging. These null values cause conditionals such as subPath: {{ include "common.secrets.key" (dict "existingSecret" .Values.existingSecret "key" "password") | quote }} template to evaluate as subPath: null since existingSecret would be null instead of being removed
As a side comment, this code has gotten really complex overtime (not related to you PR, just an observation)
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 5 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
100% agree. While implementing the fix, I had to stop myself multiple times from refactoring things. 😉 On the other hand with the |
Three test cases that cover the regression scenarios introduced by the helm#31644 nil preservation fix: - subchart default nils should be cleaned up when parent doesn't set those keys (helm#31919) - user-supplied null should erase subchart defaults (helm#31919) - subchart default nil should not shadow global values via pluck (helm#31971) Tests are expected to fail until the regression is fixed. Signed-off-by: Johannes Lohmer <jojo.dev@lohmer.com>
Regression test for the Bitnami common.secrets.key issue. Signed-off-by: Johannes Lohmer <jojo.dev@lohmer.com>
Only user-supplied nils should survive coalescing. Chart-default nils defaults, not just user overrides. This caused: - %!s(<nil>) in templates using Bitnami common.secrets.key (helm#31919) - pluck fallbacks returning nil instead of falling through to globals (helm#31971) Fixes helm#31919 Fixes helm#31971 Signed-off-by: Johannes Lohmer <jojo.dev@lohmer.com>
…rt maps Signed-off-by: Johannes Lohmer <jojo.dev@lohmer.com>
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
00d224f to
cd697b9
Compare
Fix nil value preservation regression introduced by #31644, which was too aggressive — it preserved nil values from subchart defaults, not just user overrides. This caused three downstream problems:
%!s(<nil>)in rendered output — subchart defaultnullvalues survive coalescing and produce%!s(<nil>)when stringified (breaks Bitnamicommon.secrets.key/subPathmounts)nullcan't erase subchart defaults —--valueswithnullno longer deletes child values, breaking documented behaviornilshadows global values —pluck-based fallback patterns returnnilinstead of falling through to globals (Subchart default nil values shadow global values via pluck (regression from #31644) #31971)Changes
coalesce_test.go— 3 unit tests covering each regression scenario (Regression in null merging betweenparent.valuesand--values#31919, Subchart default nil values shadow global values via pluck (regression from #31644) #31971)engine_test.go— 1 integration test for the full render pipeline producing%!s(<nil>)closes #31919
closes #31971
Special notes for your reviewer:
If applicable: