kubernetes-client/java v28.0.0 - Kubernetes 1.37 Support and Informer Improvements
The kubernetes-client/java project published v28.0.0 on October 27, 2026. The headline change is support for Kubernetes 1.37: the client models were regenerated from the release-1.37 API. Several library dependency updates ride along with it. This is a stable release, not a prerelease.
The full release notes and downloads are on the GitHub release page.
The release page lists every change, including the routine dependency bumps. Below are the ones worth a closer look if you build operators or controllers on this client.
Informers and watches get more filtering options
The informer story improved in two places. Informers now support cache level predicates, so you can filter events before they reach your handlers (#4896). There are also predicate aware informer event handlers (#4894), which means less boilerplate in controller code.
Watch parity also landed: ListOptions now works with watches and has a fluent builder (#4893). If you previously had to hand craft watch options, this should simplify that code.
Leader election and backoff fixes
Three fixes here matter if you run HA controllers:
- LeaderElector no longer waits a full extra lease duration before acquiring an already expired lease on startup (#4914).
LeaderElectionRecord.equalsno longer mishandles a nullrenewTimecomparison (#4954).- The exponential backoff rate limiter had an int overflow; that is fixed in the extended module (#4957).
The first one alone can shave a noticeable delay off controller failover.
Quantity and utility correctness
A few smaller but real fixes:
Quantity.hashCodenow honors the equals/hashCode contract, and negative quantities format correctly with SI and binary suffixes (#4953, #4956).Wait.pollshuts down its scheduled executor, plugging a thread leak (#4955).Taints.findTaintguards against a null node spec or taints (#4958).- Readiness checks no longer treat null replicas or
readyReplicasas defaults (#4905). DeploymentHelper.equalIgnoreHashavoids a NullPointerException on templates with no labels (#4900).
JDK 23 and build cleanup
For people building the client from source: the annotation processor is now set explicitly for JDK 23+ compatibility (#4935). The maintainers also removed Thread.sleep() from several tests, which should make the test suite faster and less flaky.
Where to get it
- Release page: v28.0.0 on GitHub
- Repository: kubernetes-client/java
- Tag:
v28.0.0
Worth a look if you run Java based controllers against a Kubernetes 1.37 cluster, or if you were hitting any of the leader election or thread leak issues above.