Skip to content

build(deps): bump kube to 4.2.0 - #24

Closed
alpeb wants to merge 1 commit into
mainfrom
alpeb/gwapi-0.21.0
Closed

build(deps): bump kube to 4.2.0#24
alpeb wants to merge 1 commit into
mainfrom
alpeb/gwapi-0.21.0

Conversation

@alpeb

@alpeb alpeb commented Aug 10, 2026

Copy link
Copy Markdown
Member

Bumps kube, kube-client, kube-core, and kube-runtime from 1.1 to 4.2.0, which requires k8s-openapi 0.28.

k8s-openapi 0.28 replaced chrono with jiff as its time library, so metav1::Time and metav1::MicroTime now wrap jiff::Timestamp. This propagates to kubert's public API: lease::Claim::expiry changes from chrono::DateTime<Utc> to jiff::Timestamp. Timestamp arithmetic in the lease manager now uses jiff::SignedDuration and saturates rather than panicking on overflow. chrono is replaced by jiff as a dependency of both kubert and the examples.

kube 4.x boxes Status in Error::Api and deprecates kube_core::ErrorResponse, so LeaseManager::is_conflict now uses the Status::is_conflict() helper. That leaves hyper unused in a lease-only build, so it is dropped from the lease feature.

Other consequences:

  • MSRV goes to 1.89 for kubert and the examples, as required by kube 4.2. The kubert-prometheus-* crates do not depend on kube and stay at 1.88.
  • kube-client replaced rustls-native-certs with rustls-platform-verifier, which pulls in webpki-root-certs under CDLA-Permissive-2.0; a crate-scoped license exception is added rather than widening the global allow list.

Bumps `kube`, `kube-client`, `kube-core`, and `kube-runtime` from 1.1 to
4.2.0, which requires `k8s-openapi` 0.28.

k8s-openapi 0.28 replaced `chrono` with `jiff` as its time library, so
`metav1::Time` and `metav1::MicroTime` now wrap `jiff::Timestamp`. This
propagates to kubert's public API: `lease::Claim::expiry` changes from
`chrono::DateTime<Utc>` to `jiff::Timestamp`. Timestamp arithmetic in the
lease manager now uses `jiff::SignedDuration` and saturates rather than
panicking on overflow. `chrono` is replaced by `jiff` as a dependency of
both `kubert` and the examples.

kube 4.x boxes `Status` in `Error::Api` and deprecates
`kube_core::ErrorResponse`, so `LeaseManager::is_conflict` now uses the
`Status::is_conflict()` helper. That leaves `hyper` unused in a
lease-only build, so it is dropped from the `lease` feature.

Other consequences:

* MSRV goes to 1.89 for `kubert` and the examples, as required by kube
  4.2. The `kubert-prometheus-*` crates do not depend on kube and stay at
  1.88.
* kube-client replaced `rustls-native-certs` with
  `rustls-platform-verifier`, which pulls in `webpki-root-certs` under
  CDLA-Permissive-2.0; a crate-scoped license exception is added rather
  than widening the global allow list.
@alpeb

alpeb commented Aug 10, 2026

Copy link
Copy Markdown
Member Author

The motivation for this bump was to support gateway-api 1.5.1, but the latest gateway-api-rs (v0.21.0) requires kube 3.1.0.

@alpeb alpeb closed this Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant