Repository navigation
CKS: preserve node offerings during nodeids scale-in - #14459
andrijapanicsb wants to merge 1 commit into
Conversation
Do not infer a global resize when offering parameters are omitted. Keep node-type offerings in count-only accounting and continue processing explicit autoscaling changes without a resize. Add regression coverage for selected-worker removal, mixed and legacy offerings, and autoscaling-only requests. Fixes #14458
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #14459 +/- ##
============================================
+ Coverage 20.45% 20.46% +0.01%
- Complexity 21417 21439 +22
============================================
Files 6487 6487
Lines 589329 589328 -1
Branches 72246 72247 +1
============================================
+ Hits 120554 120615 +61
+ Misses 455642 455547 -95
- Partials 13133 13166 +33
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:
|
|
🔴 Test Coverage Grade:
|
| Metric | Value |
|---|---|
| Line coverage | 25.51% |
| Branch coverage | 19.83% |
Grade Scale
| Grade | Line Coverage | Meaning |
|---|---|---|
| 🟢 A | ≥ 80% | Excellent - this code sleeps well at night 😴 |
| 🟡 B | 60-79% | Good - almost there, don't stop now 😉 |
| 🟠 C | 40-59% | Acceptable - your code is wearing a seatbelt, but no airbags 😬 |
| 🔴 D | 20-39% | Marginal - boldly shipping where no test has gone before 🖖 |
| ⛔ F | < 20% | Failing - tests? what tests? 🔥 |
Branch coverage is shown as a secondary signal. Grade is determined by line coverage.
View full Actions run
|
@blueorangutan package |
|
@andrijapanicsb a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress. |
|
Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 19661 |



Fixes #14458. Found during QA for #14223; this is a separate PR based on
main.Fix
A
nodeids-only scale-in could fall back to the old global offering and try to resize unrelated nodes before removing the selected worker.Omitted offering parameters now preserve existing offerings. Count-only accounting uses the node-type offering, and autoscaling-only requests still work without resizing VMs. The normal drain/remove workflow is unchanged.
Testing
137 CKS unit tests passed, including regression tests for selected-worker removal, mixed/legacy offerings and autoscaling-only requests.
Live verification used the #14223 baseline with this fix applied. A request with only the cluster ID and
nodeidsremoved the exact additional worker:Retained nodes stayed Ready with unchanged guest/Kubernetes capacity, allocatable resources, boot IDs and kubelet start times. All 17 resident Pod UIDs/restart counts were unchanged; HTTP/DNS passed. Repeating the removed ID was rejected without changes.
Final cluster: 6 CPU / 7168 MiB. Global RAM returned to 9/~14 GiB after a 13-GiB test peak. Original node placement was restored.