Releases: kubernetes-sigs/karpenter
Releases · kubernetes-sigs/karpenter
v0.31.3
chore: Patch in changes for `v0.31.2` (#612) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
v0.31.2
Chores
- Handle NodeClaims existing but being unknown in earlier versions (#604) #604 (Jonathan Innis)
Bug Fixes
- bump google.golang.org/grpc from 1.55.0 to 1.56.3 (#639) #639 (dependabot[bot])
v0.32.1
fix: Ignore pods awaiting garbage collection during topology calculat…
v0.32.0
Features
- Add karpenter.k8s.aws/instance-ami-id label #4637 - add ImageID… (#559) #559 (George Wheatcroft)
- Adding CEL validation for the
nodepool.spec.disruption
(#563) #563 (Amanuel Engeda) - CEL Validation for NodeClaim Kubelet (#596) #596 (Amanuel Engeda)
- v1beta1 (#562) #562 (Jonathan Innis)
- CEL Validation for NodeClaim Taints (#595) #595 (Amanuel Engeda)
- CEL Validation for NodeClaim Requirement (#594) #594 (Amanuel Engeda)
- CEL Validation for
NodePool.Spec.Template
Labels (#633) #633 (Amanuel Engeda)
Bug Fixes
- try other provisioners if one fails (#547) #547 (Todd Neal)
- don't allow a single bad provisioner to stop deprovisioning (#548) #548 (Todd Neal)
- Topology domains should be constrained on labels (#549) #549 (Jonathan Innis)
- Fix patching
nil
resources when converting Provisioner to NodePool (#561) #561 (Jonathan Innis) - Fix using the wrong pods when validating
do-not-evict
pods (#583) #583 (Jonathan Innis) - Sync nodes that are Initialized from cluster state (#579) #579 (Amanuel Engeda)
- allow queue to clean up if not evict pods (#599) #599 (Nick Tran)
- Handle NodeClaims existing but being unknown in earlier versions (#604) #604 (Jonathan Innis)
- add in v1beta1 termination metrics label (#606) #606 (Nick Tran)
- Ignore pods awaiting garbage collection during topology calculat… (#642) #642 (Ellis Tarn)
Documentation
Performance Improvements
- Enhanced key matching Labelhints (#554) #554 (syedsadath-17)
Tests
- Add testing to handle Provisioner/NodePool combined provisioning (#550) #550 (Jonathan Innis)
- Add testing to validate
do-not-disrupt
anddo-not-evict
(#555) #555 (Jonathan Innis) - Add combined deprovisioning testing for
v1beta1
andv1alpha5
(#558) #558 (Jonathan Innis) - fix termination test flake (#576) #576 (Nick Tran)
- Move
env
to be created at the beginning of suite forv1beta1
(#571) #571 (Amanuel Engeda) - replaced offsets with GinkgoHelper() (#578) #578 (syedsadath-17)
- Remove CEL unit testing for 1.23 and 1.24 (#586) #586 (Amanuel Engeda)
- fix bindings expectation (#608) #608 (Nick Tran)
- Handling concurrency for disruption controller tests (#607) #607 (syedsadath-17)
- NodeClaim CEL validation tests (#635) #635 (Amanuel Engeda)
- Add a test function that allows node requirement replacement on keys (#636) #636 (Jonathan Innis)
Continuous Integration
- Remove 1.22 from our testing (#566) #566 (Amanuel Engeda)
Chores
- Remove dynamic log level changing with ConfigMap watch (#544) #544 (Jonathan Innis)
- record the scheduling duration in the log (#552) #552 (Todd Neal)
- deps: bump the go-deps group with 2 updates (#551) #551 (dependabot[bot])
- Update NodeClassReference to have fieldname
nodeClassRef
(#568) #568 (Jonathan Innis) - Fix getting suffix after first slash (#570) #570 (Jonathan Innis)
- Remove reference to
machine
in deprovisioning (#506) #506 (Jonathan Innis) - Enable configuring logger through volume mount and environment variable (#553) #553 (Jonathan Innis)
- move termination queue to singleton controller (#572) #572 (Nick Tran)
- Default log level for webhook component (#577) #577 (Jonathan Innis)
- deps: bump the go-deps group with 3 updates (#581) #581 (dependabot[bot])
- Rename filename for empty node consolidation (#582) #582 (Jonathan Innis)
- karpenter-global-settings migration (#541) #541 (Jason Deal)
- update k8s packages to latest version (#575) #575 (syedsadath-17)
- deps: bump golang.org/x/net from 0.14.0 to 0.17.0 (#591) #591 (dependabot[bot])
- deps: bump the k8s-go-deps group with 2 updates (#592) #592 ([dependabot[bot]...
v0.31.1
Chores
Bug Fixes
- try other provisioners if one fails (#547) (Todd Neal) #547
- don't allow a single bad provisioner to stop deprovisioning (#548) (Todd Neal) #548
- Topology domains should be constrained on labels (#549) (Jonathan Innis) #549
- Fix patching nil resources when converting Provisioner to NodePool (#561) (Jonathan Innis) #561
- Fix using the wrong pods when validating (#583) (Jonathan Innis) #583
- Sync nodes that are Initialized from cluster state (#579) (Amanuel Engeda) #579
v0.31.0
Tests
- static provisioner hash test (#497) #497 (Jason Deal)
v1beta1
Machine Controller Testing (#498) #498 (Jonathan Innis)- Add testing for
v1beta1
hash controller (#509) #509 (Jonathan Innis) - Add testing for outer-level
v1beta1
provisioning controller package (#510) #510 (Jonathan Innis) - Update scheduling benchmarker to use
v1beta1
APIs (#526) #526 (Jonathan Innis) - add provisioner and nodeclaim counter suite tests (#523) #523 (Nick Tran)
- Don't constrain the NodeClaim if no test requirements are specified by default (#527) #527 (Jonathan Innis)
- Add v1beta1 testing for instance type selection testing (#525) #525 (Jonathan Innis)
- Add
v1beta1
testing for NodePool topology (#524) #524 (Jonathan Innis) - Add
v1beta1
deprovisioning testing (#537) #537 (Jonathan Innis) - Add v1beta1 deprovisioning consolidation testing (#538) #538 (Jonathan Innis)
- add k8s 1.28 to CI (#543) #543 (Jason Deal)
Continuous Integration
- Set the toolchain kubebuilder install path to be the default one (#530) #530 (Jonathan Innis)
- Fix caching on install-deps (#536) #536 (Jonathan Innis)
Chores
- Bump eviction api to policy/v1 (#496) #496 (Jonathan Innis)
- deps: bump the actions-deps group with 1 update (#500) #500 (dependabot[bot])
- Rename
.spec.disruption
fields inv1beta1/NodePool
(#494) #494 (Jonathan Innis) - remove provisionable pods from scheduling results (#503) #503 (Nick Tran)
- Handle both well-known label compatibility for
v1alpha5
andv1beta1
(#501) #501 (Jonathan Innis) - Support
v1beta1
in CloudProvider interface (#502) #502 (Jonathan Innis) - Add handling to delete all
v1beta1/NodeClaim
on node termination (#505) #505 (Jonathan Innis) - Rename directories to
v1beta1
naming (#507) #507 (Jonathan Innis) - Add
v1beta1/NodeClaim
informer for cluster state (#504) #504 (Jonathan Innis) - Remove local reference to generic sets implementation (#511) #511 (Jonathan Innis)
- Revert "feat: index default namespace endpoints for discovery (#512)" (#514) #514 (Nick Tran)
- Add scheduling testing support for
v1beta1
APIs (#513) #513 (Jonathan Innis) - Minor updates to v1beta1 handling of defaults and
kubelet
naming (#515) #515 (Jonathan Innis) - deps: bump the go-deps group with 3 updates (#519) #519 (dependabot[bot])
- Require
spec.template.spec.requirements
to be set and changespec.template.spec.kubelet
field name in memory (#521) #521 (Jonathan Innis) - Add nodepool informer for triggering consolidation updates (#522) #522 (Jonathan Innis)
- Drop the
containerRuntime
field from thev1beta1
kubeletConfig (#528) #528 (Jonathan Innis) - Create custom
NodeClassNotReady
error for nodeClaim launch (#531) #531 (Jonathan Innis) - Drop short names for NodeClaims and NodePools (#534) #534 (Jonathan Innis)
- Add
v1beta1/NodePool
drifted reason (#535) #535 (Jonathan Innis) - deps: bump the go-deps group with 1 update (#539) #539 (dependabot[bot])
- log pod names we are provisioning (#540) #540 (Todd Neal)
Commits
v0.30.0
Features
- Block readiness until caches are synced (#401) #401 (Ellis Tarn)
- Provisioner Static Drift (#417) (Amanuel Engeda) #417
- Add Node Requirement Drift (#423) (Amanuel Engeda) #423
- add a metric for replacement nodes that fail to launch (#475) #475 (Nick Tran)
Bug Fixes
- prevent consolidation from pausing for 5m (#415) #415 (Todd Neal)
- Don't treat consolidation validation failures as errors, and emit a debug log instead (#437) #437 (Ellis Tarn)
- add pod overhead into pod resources calculation #449 (Todd Neal)
- Handle ephemeral volume topology (#441) #441 (Jonathan Innis)
- Ensure
VolumeUsage
andHostPortUsage
state is consistent (#434) #434 (Ellis Tarn) - resolve issue interpreting preferred node affinities #450 (Todd Neal)
- support pdb policies #455 (Todd Neal)
- continue for expiration/drift when pods cannot reschedule (#451) #451 (Nick Tran)
- ignore permanently pending pods during consolidation #458 (Todd Neal)
- reorder drift checks to save on computation (#464) #464 (Nick Tran)
- Translate all in-tree storage provisioners to CSI (#438) (Jonathan Innis) #438
- do not consider provisioners without a provider (#491) #491 (Nick Tran)
- register timeout metrics (#492) #492 (Nick Tran)
Performance Improvements
- improve scheduling speed #418 (Todd Neal)
- cache the default storage class for 1 minute #418 (Todd Neal)
- handle the common case of a simple requirement faster #418 (Todd Neal)
- reduce allocs when summing resource lists #418 (Todd Neal)
- Implement timeouts and Max-batch size for Consolidation (#472) #472 (Nick Tran)
Tests
- Deflake consolidation timeout testing (#476) #476 (Jonathan Innis)
Chores
- deps: bump the go-deps group with 2 updates (#410) #410 (dependabot[bot])
- deps: bump the go-deps group with 1 update (#420) #420 (dependabot[bot])
- Add conversion utils functions for
NodePool
/NodeClaim
(#433) #433 (Jonathan Innis) - debug log when we add requirements due to volumes #456 (Todd Neal)
- deps: bump the go-deps group with 2 updates (#468) #468 (dependabot[bot])
- Add
v1beta1/NodeClaim
controllers that convert fromv1alpha5/Machine
(#445) #445 (Jonathan Innis) - Update drift reason (#474) #474 (Amanuel Engeda)
- Enable
v1beta1/NodePool
conversion in counter controller (#448) #448 (Jonathan Innis) - Enable
v1beta1/NodeClaim
conversion in consistency controller (#447) #447 (Jonathan Innis) - Garbage Collect Leaked Node Lease (#471) #471 (Amanuel Engeda)
- Enable
v1beta1/NodePool
provisioner hash controller (#477) #477 (Jonathan Innis) - upgrade to go 1.21 (#480) #480 (Brandon Wagner)
- Scope Lease to namespace
kube-node-lease
(#482) #482 (Amanuel Engeda) v1beta1
Conversion Support for Provisioning/Deprovisioning/State (#443) #443 (Jonathan Innis)- Perform metrics tracking through a
MetricStore
abstraction (#326) #326 (Jonathan Innis) - Allow
node-restriction.kubernetes.io/
prefix in the label set (#484) #484 (Jonathan Innis) - Reorganize controllers into logical directories (#485) #485 (Jonathan Innis)
- Add
v1beta1/NodePool
metrics controller (#486) #486 (Jonathan Innis) - Handle shared state for Machine/NodeClaim (#487) #487 (Jonathan Innis)
- Change duration type for settings (#483) #483 (Amanuel Engeda)
- Fix hash annotation key resolution for
v1beta1/NodeClaim
(#490) #490 (Jonathan Innis) - single init inflight capacity / startup taints (#495) #495 (Jason Deal)
Commits
- c2bae73: Group dependabot updates together (#404) (Jonathan Innis) #404
- f32767a: Bump k8s deps to 1.26 (#180) (Jonathan Innis) #180
- c88854d: Fix dependabot grouping (#407) (Jonathan Innis) #407
- 1110559: Fix missed k8s 1.26 deps (#408) (Jonathan Innis) #408
- 747f91b: Add "ci:" to PR template (#412) (Jon...
v0.30.0-rc.0
Features
- Block readiness until caches are synced (#401) #401 (Ellis Tarn)
- Provisioner Static Drift (#417) (Amanuel Engeda) #417
- Add Node Requirement Drift (#423) (Amanuel Engeda) #423
Bug Fixes
- prevent consolidation from pausing for 5m (#415) #415 (Todd Neal)
- Don't treat consolidation validation failures as errors, and emit a debug log instead (#437) #437 (Ellis Tarn)
- add pod overhead into pod resources calculation #449 (Todd Neal)
- Handle ephemeral volume topology (#441) #441 (Jonathan Innis)
- Ensure
VolumeUsage
andHostPortUsage
state is consistent (#434) #434 (Ellis Tarn) - resolve issue interpreting preferred node affinities #450 (Todd Neal)
- support pdb policies #455 (Todd Neal)
- continue for expiration/drift when pods cannot reschedule (#451) #451 (Nick Tran)
- ignore permanently pending pods during consolidation #458 (Todd Neal)
- reorder drift checks to save on computation (#464) #464 (Nick Tran)
- Translate all in-tree storage provisioners to CSI (#438) (Jonathan Innis) #438
Performance Improvements
- improve scheduling speed #418 (Todd Neal)
- cache the default storage class for 1 minute #418 (Todd Neal)
- handle the common case of a simple requirement faster #418 (Todd Neal)
- reduce allocs when summing resource lists #418 (Todd Neal)
Chores
- deps: bump the go-deps group with 2 updates (#410) #410 (dependabot[bot])
- deps: bump the go-deps group with 1 update (#420) #420 (dependabot[bot])
- Add conversion utils functions for
NodePool
/NodeClaim
(#433) #433 (Jonathan Innis) - debug log when we add requirements due to volumes #456 (Todd Neal)
Commits
- c2bae73: Group dependabot updates together (#404) (Jonathan Innis) #404
- f32767a: Bump k8s deps to 1.26 (#180) (Jonathan Innis) #180
- c88854d: Fix dependabot grouping (#407) (Jonathan Innis) #407
- 1110559: Fix missed k8s 1.26 deps (#408) (Jonathan Innis) #408
- 747f91b: Add "ci:" to PR template (#412) (Jonathan Innis) #412
- 1cfc2ea: Fix bool check in "make verify" (#411) (Jonathan Innis) #411
- 202df1e: Add retracted version for published test version (#413) (Jonathan Innis) #413
- b7a0a8f: Adding static drift annotation (#400) (Amanuel Engeda) #400
- 34e8049: Close response to fix file descriptor leak (#416) (Jonathan Innis) #416
- 51c6998: Add more exempt PR labels (#422) (Jonathan Innis) #422
- 0b48554: Adding LeaderElectionNamespace to init of controllerruntime Manager (#424) (abeer-stripe) #424
- 6b54c40: Consider existing capacity for scheduling (#414) (Jonathan Innis) #414
- eb4d8f2: Warn instead of Error on 'no provisioners found' (#425) (Jonathan Innis) #425
- bc56099: Prevent retry.Do() from hanging controller (#427) (Jonathan Innis) #427
- 83e9671: Add v1beta1 APIs (#426) (Jonathan Innis) #426
- 353ed63: discovery cluster test label (#431) (Amanuel Engeda) #431
- e40f655: Fire an info message rather than warn (#435) (Jonathan Innis) #435
- 3aa152d: Enforce stricter compatibility for existing nodes/machines (#432) (Jonathan Innis) #432
- 599497b: Wait for Karpenter-managed node to populate provider id (#439) (Jonathan Innis) #439
- 44f8af7: cloudProvider gives a reason for drift (#446) (Amanuel Engeda) #446
- b611090: Remove not drifted (#452) (Amanuel Engeda) #452
- 36c54ad: provisioner static drift (#453) (Amanuel Engeda) #453
- 18cfbd6: Deflake tests that validate deprov ordering (#460) (Jonathan Innis) #460
- 20516d9: Reduce event spam by using command.Action() instead of command.String() (#461) (Jonathan Innis) #461
- b90dbcc: Stop firing Blocked/Unconsolidatable events for some time on startup (#462) (Jonathan Innis) #462
- c15edc9: remove node look-up on machine annotation (#463) (Amanuel Engeda) #463
- ff6de1a: disruption controller metrics (#442) (Amanuel Engeda) #442
v0.29.2
v0.29.1
⚠️ Known Resource Leak
This release contains a memory and file descriptor leak issue that is fixed in v0.29.2
. We recommend any users on v0.29.1
to bump to this new patch release version.
Features
- create kubernetes events in case of insufficient capacity errors (#356) #356 (Mike Fedosin)
Chores
- deps: bump github.com/onsi/gomega from 1.27.6 to 1.27.8 (#393) #393 (dependabot[bot])
- deps: bump github.com/prometheus/client_model from 0.3.0 to 0.4.0 (#394) #394 (dependabot[bot])
- deps: bump google.golang.org/grpc from 1.51.0 to 1.53.0 (#398) #398 (dependabot[bot])
- Machine Disruption Controller (#319) #319 (Jonathan Innis)