Features
- add a nodepool cost metric (#2584) #2584 (Derek Frank)
- Add Gte and Lte operators for requirements (#2674) #2674 (Ellis Tarn)
- Add option to enabled warmup when leader election is used (#2740) #2740 (Garvin Pang)
- Add prometheus metrics for nodepool disruption decisions performed, active disruptions (#2707) #2707 (Cameron McAvoy)
- add consolidation pipeline logging (#2786) #2786 (James Thompson)
Bug Fixes
- close race condition for tests (#2648) #2648 (Derek Frank)
- initialize npMap in metrics cost controller to prevent nil map panic (#2644) #2644 (James Thompson)
- kube-api-linter needs to be built prior to running (#2652) #2652 (Derek Frank)
- prioritize deprovisioning NodeClaims that have not been resolved (#2637) #2637 (Sumukha Radhakrishna)
- Add capacity type req to nodeclaim based on offerings capacity types (#2642) #2642 (Ashwin Saxena)
- upgrade Go to 1.25.5 to resolve GO-2025-4155 vulnerability (#2687) #2687 (Shun Takahashi)
- do not log on missing labels (#2688) #2688 (Derek Frank)
- use test.RandomName() to prevent test name collisions (#2715) #2715 (Ellis Tarn)
- allow timing variance in rate limiting test (#2716) #2716 (Ellis Tarn)
- topology spread constraint with nodeAffinityPolicy: Honor (#2639) #2639 (tal19987)
- capacity respects noeoverlay weight precedence (#2767) #2767 (Étienne Bérubé)
- deflake nomination test by using injected clock (#2781) #2781 (Ellis Tarn)
- deflake termination tests by using injected clock (#2783) #2783 (Ellis Tarn)
- remove requirements clone in topology domain scheduling (#2784) #2784 (Ryan Mistretta)
- Revert "fix: topology spread constraint with nodeAffinityPolicy: Honor (#2639)" (#2797) #2797 (Ryan Mistretta)
- Revert "feat: add a nodepool cost metric (#2584)" (#2796) #2796 (Ryan Mistretta)
- Improve Karpenter memory when using Node Overlay with copy-on-write (#2790) #2790 (Garvin Pang)
- separate volume requirements from TSC calculations (#2780) #2780 (Kevin Zhao)
- labels: simplify RestrictedLabel filtering and relax cel restrictions (#2586) #2586 (Max Cao)
Documentation
- DRA KWOK Driver for Karpenter e2e (#2501) #2501 (Alima Azamat)
- update IBM Cloud provider reference (#2613) #2613 (Josephine Pfeiffer)
- fix typo in node auto repair design (#2610) #2610 (Gowtham Gorrepati)
- clarify OCI provider is provided by Zoom (#2669) #2669 (Shun Takahashi)
- fix timezone link formatting for consistency (#2746) #2746 (Kausheel Kumar)
- Add a new talk in README (#2436) #2436 (Wei)
- fix some minor typos (#2747) #2747 (Kausheel Kumar)
- clarify local e2e usage and suite layout (#2759) #2759 (Kausheel Kumar)
- Add a readme for design doc folder (#2760) #2760 (Derek Frank)
- fix typo "decrees" → "decrease" in price adjustment descriptions (#2799) #2799 (Shun Takahashi)
- fix typo 'compatability' to 'compatibility' (#2798) #2798 (Shun Takahashi)
Code Refactoring
- simplify ToNodeClaim using Offerings and InstanceTypes methods (#2782) #2782 (Ellis Tarn)
- simplify getCandidatePrices to not return error (#2812) #2812 (Ellis Tarn)
Tests
- setup CI for performance testing (#2594) #2594 (Jigisha Patil)
- lock unsynced time mutex during cluster reset for raceless testing (#2606) #2606 (Derek Frank)
- Added perf-test e2e benchmark tests (#2609) #2609 (Nathaniel Jones)
- fix flaking static provisioning test (#2663) #2663 (Derek Frank)
- fix flaking provisioning large replica test (#2677) #2677 (Derek Frank)
- add GetNodePoolCost func for perf testing (#2602) #2602 (Jigisha Patil)
- speed up tests by using fake clock for sleeps (#2717) #2717 (Ellis Tarn)
- Added an scaling interference benchmark test (#2684) #2684 (Nathaniel Jones)
- use random name in registration test to prevent flakes (#2721) #2721 (Ellis Tarn)
- fix static provisioning cluster sync test flake (#2723) #2723 (Ellis Tarn)
- fix flaking static test (#2750) #2750 (Derek Frank)
- fix integ test (#2829) #2829 (Andrew Mitchell)
- Fix label integration test (#2832) #2832 (Andrew Mitchell)
- Should revert the use of test.CreateDeploymentOptions in the regressi… (#2837) #2837 (Nathaniel Jones)
Continuous Integration
- update codeql workflow (#2649) #2649 (Jason Deal)
- integrate kube-api-linter into CI workflow (#2618) #2618 (Shun Takahashi)
Chores
- deps: bump sigs.k8s.io/controller-runtime from 0.22.1 to 0.22.2 in the k8s-go-deps group (#2563) #2563 (dependabot[bot])
- deps: bump actions/cache from 4.2.4 to 4.3.0 in /.github/actions/install-deps in the action-deps group (#2551) #2551 (dependabot[bot])
- deps: bump kubernetes-sigs/release-actions from 0.3.1 to 0.4.0 in the actions-deps group (#2552) #2552 (dependabot[bot])
- deps: bump the go-deps group across 1 directory with 5 updates (#2569) #2569 (dependabot[bot])
- Add DerekFrank as reviewer (#2568) #2568 (Derek Frank)
- update to 1.25.3 (#2604) #2604 (Derek Frank)
- Add locking mechanism to nodePoolRegistration State (#2620) #2620 (Jigisha Patil)
- Update OWNER_ALIASES (#2651) #2651 (Ellis Tarn)
- Update OWNER_ALIASES (#2650) #2650 (Ellis Tarn)
- deps: bump the go-deps group across 1 directory with 3 updates (#2632) #2632 (dependabot[bot])
- deps: bump the actions-deps group across 1 directory with 3 updates (#2634) #2634 (dependabot[bot])
- deps: bump the k8s-go-deps group across 1 directory with 9 updates (#2633) #2633 (dependabot[bot])
- Migrate toolchain to Go 1.24+ tool directive (#2673) #2673 (Ellis Tarn)
- Migrate license header management to nwa (#2680) #2680 (Ellis Tarn)
- deps: bump golang.org/x/crypto from 0.43.0 to 0.45.0 (#2682) #2682 (dependabot[bot])
- Isolate tool dependencies in go.tools.mod (#2710) #2710 (Ellis Tarn)
- ensure serrors wrap with even number of keys and values (#2706) #2706 (Ryan Mistretta)
- deps: bump the k8s-go-deps group across 1 directory with 8 updates (#2712) #2712 (dependabot[bot])
- ensure consistent use of Name() method across all controllers (#2694) #2694 (Shun Takahashi)
- deps: bump the action-deps group across 1 directory with 2 updates (#2713) #2713 (dependabot[bot])
- add pod readiness dimension to pod state metrics (#2727) #2727 (Derek Frank)
- remove cluster metric controller, standardize labels into metrics constants file (#2752) #2752 (Derek Frank)
- Update Karpenter Dependency (#2753) #2753 (Amanuel Engeda)
- Tidied up a comment (#2755) #2755 (Ellis Tarn)
- fix flaking static test, refactor to use lo (#2758) #2758 (Derek Frank)
- throw errors out of nodeclaim informer loop (#2749) #2749 (Derek Frank)
- deps: bump the go-deps group with 3 updates (#2776) #2776 (dependabot[bot])
- Retracting release v1.8.1 (#2788) #2788 (Jigisha Patil)
- deps: bump the action-deps group in /.github/actions/install-deps with 2 updates (#2805) #2805 (dependabot[bot])
- fix typos in comments and documentation (#2801) #2801 (Shun Takahashi)
- correct node pool not found error (#2792) #2792 (Ryan Mistretta)
- deps: bump the actions-deps group with 4 updates (#2806) #2806 (dependabot[bot])
- bump go version (#2825) #2825 (Alima Azamat)
- Enable k8s 1.35 tests (#2828) #2828 (Andrew Mitchell)
- deps: bump the actions-deps group with 3 updates (#2821) #2821 (dependabot[bot])