fix: converge omitted-request resize resources#10394
Conversation
|
Auto Cherry-pick Instructions CLA Recheck Instructions |
abaff59 to
75d1223
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #10394 +/- ##
==========================================
- Coverage 61.87% 61.87% -0.01%
==========================================
Files 533 533
Lines 63609 63621 +12
==========================================
+ Hits 39360 39363 +3
- Misses 20661 20674 +13
+ Partials 3588 3584 -4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Runtime validation update (2026-06-18 CST) Exact head Evidence verified locally:
Classification for this exact run: first blocker is control-plane config-hash commit/status convergence, tracked by #10369. This PR remains draft and should not be used to unblock Redis PR #2819. The resource-comparison change may still address #10395, but it is not sufficient for this Redis focused gate. |
When a desired pod template sets CPU or memory limits but omits requests, Kubernetes can preserve a live request value defaulted from an older limit. The in-place resource comparison should not infer a desired request from the desired limit in that case; otherwise a post-resize reconcile keeps reporting a request difference even though the desired template does not own that request. Compare CPU and memory requests only when the desired template explicitly sets that request. Continue to compare limits normally.
75d1223 to
28c1e02
Compare
|
Pushed scope cleanup after the runtime classification:
PR remains draft; #10369 carries the control-plane config-hash/status blocker. |
|
Wei seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Problem
Fixes #10395.
This replaces closed PR #10362 with the narrower resource-only scope requested in review.
When the desired pod template omits CPU or memory requests and only sets limits, Kubernetes can keep a live request value that was defaulted from an older limit. The old comparison treated the omitted desired request as the desired limit, so after a resize updated the limit the next reconcile could still see a request difference even though the desired template does not own that request.
Changes
Runtime status
Exact-head Redis Parameters x replication-twemproxy validation with
kubeblocks:pr-10394-75d1223-stellafailed. The first blocker in that run is control-plane config-hash commit/status convergence, tracked separately by #10369. This PR remains draft and does not unblock Redis PR #2819.Scope
Tests
go test ./pkg/controller/instance ./pkg/controller/instanceset -count=1