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])
- Fix calling the named function on the logger twice (#597) #597 (Jonathan Innis)
- Ensure controller-runtime logger is configured (#602) #602 (Jonathan Innis)
- Update controller names for v1beta1 (#601) #601 (Jonathan Innis)
- Change deprovisioning to disruption controller and add metrics (#600) #600 (Jonathan Innis)
- make options injectable (#593) #593 (Jason Deal)
- Fix a couple misses where the entire disruption method was printed (#605) #605 (Jonathan Innis)
- always inject settings (#609) #609 (Jason Deal)
- Update the disruption metric descriptions (#613) #613 (Jonathan Innis)
- correctly parse boolean CLI flags (#614) #614 (Jason Deal)
- Enable userAgent version specification in operator (#615) #615 (Jonathan Innis)
- Fix returning non-empty reconcile result and error (#618) #618 (Jonathan Innis)
- change log level of initialization (#619) #619 (Nick Tran)
- Alias the
metav1.ObjectMeta
type forNodeClaimTemplate
(#625) #625 (Jonathan Innis) - deps: bump the k8s-go-deps group with 5 updates (#630) #630 (dependabot[bot])
- deps: bump the go-deps group with 1 update (#631) #631 (dependabot[bot])
- Allow the
karpenter.sh/nodepool
node label selector and validate nodeSelector on pods (#628) #628 (Jonathan Innis) - Wait for instance type label to exist for managed nodes (#627) #627 (Jonathan Innis)
- CEL Vaildation Requirements Cleanup (#632) #632 (Amanuel Engeda)
- Drop usage pct metric for nodepool (#637) #637 (Jonathan Innis)
- Only consider node shape for requested resources (#638) #638 (Jonathan Innis)
- deps: bump google.golang.org/grpc from 1.55.0 to 1.56.3 (#639) #639 (dependabot[bot])