Changes by Kind
API Change
- Add validation to the verticalpodautoscaler.spec.resourcePolicy.containerPolicies.controlledResources field.
A warning will be returned on updates of any existing VPA that uses invalid values (#9951, @adrianmoisey)
Feature
- Add reactive CPU startup boost unboosting (#10087, @omerap12)
- Adds a Prometheus counter metric (inplace_cache_pods_total) to track pods that were skipped from in-place updates because the infeasible result was already cached. (#9819, @omerap12)
- Make status lease configurable (#10119, @dippynark)
- VPA updater metric added to expose admission controller status: vpa_updater_admission_controller_status_invalid_total (#10182, @dippynark)
Bug or Regression
- Add reasons to in-place update deferred log messages (#9945, @omerap12)
- Fixed VPA checkpoint loading to prevent recommendations from restarting from scratch (#10045, @adrianmoisey)
- Fixed an issue where a recent OOM event could be incorrectly discarded as "too old" when it occurred just before a memory aggregation interval boundary, preventing the expected memory bump-up. (#9725, @ulascansenturk)
- Fixed the VPA recommender ignoring the --history-cpu-metric and --history-memory-metric flags when using the Prometheus history provider, which caused the historical queries to omit the configured metric name. (#9748, @ulascansenturk)
- VPA Admission Controller now limits incoming request payload sizes to 5MB and returns HTTP 413 (Payload Too Large) when exceeded, preventing potential OOM crashes. (#9690, @sophieliu15)
- VPA Updater: Initialized counter metrics to 0 on pod creation. This fixed metric queries returning no data instead of 0 for VPAs with no updates or evictions. (#9722, @aidenfine)
- VPA InPlace: treat transient kubelet ResizeError as deferred, not permanent infeasibility, so a later higher recommendation is not skipped until Updater restart. (#10094, @iho)
Other (Cleanup or Flake)
- Bump Go to 1.26.8 (#10263, @adrianmoisey)
- Fix bug where VPA Checkpoint GC error message wasn't logging correctly (#9882, @adrianmoisey)
- Index VPAs by targetRef to speed up admission-controller matching. This change makes the admission-controller lookup a Pod's owning VPA using an index, changing the lookup from O(n) to O(1). (#10138, @adrianmoisey)
- Refactor checkpoint GC to reduce number of API calls (#10180, @adrianmoisey)