Skip to content

Releases: kube-rs/kube

0.92.0

12 Jun 10:33
0.92.0
0f6cb6f
Compare
Choose a tag to compare

Runtime: Decreased Memory Usage from watcher

Buffering of initial pages / init streams is no longer a mandatory process with watcher::Event gaining new Init, InitApply, and InitDone events. These events are read on the store side maintaining the atomicity/completeness guarantees for reflector and Store users.

This constitutes a significant memory decrease for all watcher users, and it has more details in a new kube.rs/blog post.

The downside is a breaking change to watcher::Event. Plain usage of watcher / reflector / Controller should generally not need to change anything, but custom stores / matches on watcher::Event will need an update. If you are writing custom stores, the new signals should be helpful for improved caching.

Thanks to @fabriziosestito via Kubewarden for #1494 . Follow-ups for this feature: #1499 and #1504.

Client: HTTP Proxy Support

Support is now introduced under the http-proxy feature pulling in hyper-http-proxy complementing the already existing socks5 proxy feature.

Thanks to @aviramha via MetalBear for the support in #1496, with follow-ups #1501 + #1502

What's Changed

Added

Changed

Fixed

  • Fix potentially panicing unchecked duration adds in runtime by @clux in #1489
  • ObjectList now accepts null metadata like upstream k8s does by @aviramha in #1492
  • rename http_proxy feature to http-proxy and add it to the umbrella crate by @aviramha in #1501
  • move from hyper-proxy2 to hyper-http-proxy by @aviramha in #1502

New Contributors

Full Changelog: 0.91.0...0.92.0

0.91.0

06 May 14:04
0.91.0
5dbae3a
Compare
Choose a tag to compare

Kubernetes v1_30 support via k8s-openapi 0.22

Please upgrade k8s-openapi along with kube to avoid conflicts.

Unstable Stream Sharing

A more complete implementation that allows sharing watcher streams between multiple Controllers (for #1080) has been added under the unstable-runtime feature-flag in #1449 and #1483 by @mateiidavid. This represents the first usable implementation of shared streams (and replaces the older prototype part in #1470). While some changes are expected, you can check the shared_stream_controller example for a high-level overview.

What's Changed

Added

Changed

  • Upgrade k8s-openapi to 0.22 and bump MK8SV to 1.25 by @clux in #1485

Removed

  • Remove abandoned StreamSubscribe implementation by @clux in #1470

Fixed

  • Include inner error message in Display for SerdeError by @XAMPPRocky in #1481
  • Remove invalid uniqueItems property from CRDs when Sets are used by @sbernauer in #1484

New Contributors

Full Changelog: 0.90.0...0.91.0

0.90.0

03 Apr 16:32
0.90.0
5dce83b
Compare
Choose a tag to compare

Highlights

kube::client::Body Improvements

  • Unit testing helpers #1444 + #1445,
  • Accuracy; size_hint and is_end_stream implemented in #1452 + internal cleanups #1453 and #1455

Dependency Cleanups

  • rustls to 0.23 in #1457
  • once_cell removed in #1447 (no longer needed)
  • futures feature prune in #1442
  • chrono features prune in #1448, and bump its min version pin in #1458

What's Changed

Added

  • Add proxy Body::collect_bytes for easier unit tests by @clux in #1445

Changed

Fixed

  • disable unused futures feature by @tottoto in #1442
  • Expose Body::empty for easier tests by @clux in #1444
  • replace once_cell Lazy with ordinary static by @tottoto in #1447
  • replace chrono feature clock with now by @tottoto in #1448
  • implement http_body trait method by @tottoto in #1452
  • Fix examples for custom clients not authenticating by @clux in #1450
  • Set a compatible minimum chrono version by @clux in #1458

Full Changelog: 0.89.0...0.90.0

0.89.0

26 Mar 11:38
0.89.0
d6e1748
Compare
Choose a tag to compare

Upgrading hyper and http to 1.0 and MSRV to 1.75.0

This release completes the hyper & http ecosystem upgrade #1351 via #1438. In particular, this change includes upgrades to http, http-body, tower-http, hyper, hyper-openssl, hyper-rustls, hyper-socks2, hyper-timeout, tame-oauth, tokio-tungstenite, tower-http, rustls, rustls-pemfile, as well as adopting the new hyper_util and http_body_util to make the change.

While this change constitutes significant internal churn (and a new kube::client::Body), our external api remains largely unchanged. Some minor changes are necessary for custom clients, and for integration testing using tower_mock. See the controller-rs upgrade pr or the examples folder in this commit for details.

What's Changed

Added

  • client_ext for Client::get and Client::list by @clux in #1375
  • direct node access logs/portforward/exec/attach via kubelet debug interface by @XciD in #1428

Changed

Fixed

  • Serialize TerminalSize fields as PascalCase by @nightkr in #1407
  • Kubeconfig allow certificate_authority_data not present in ExecAuthCluster by @ljun20160606 in #1432
  • fix: check err on Client::request_stream by @XciD in #1433

New Contributors

Full Changelog: 0.88.1...0.89.0

0.88.1

26 Jan 02:22
0.88.1
74d90c9
Compare
Choose a tag to compare

What's Changed

This is a bug fix release for a deserialization issue introduced in 0.88.0.

Fixed

New Contributors

Full Changelog: 0.88.0...0.88.1

0.88.0

21 Jan 13:59
0.88.0
725ef5c
Compare
Choose a tag to compare

Kubernetes v1_29 support via k8s-openapi 0.21

Please upgrade k8s-openapi along with kube to avoid conflicts.

What's Changed

Added

Changed

  • Bump MSRV to 1.70 by @clux in #1384
  • Upgrade k8s-openapi for Kubernetes v1_29 support by @clux in #1394

New Contributors

Full Changelog: 0.87.2...0.88.0

0.87.2

22 Dec 09:25
0.87.2
Compare
Choose a tag to compare

What's Changed

Added

Changed

New Contributors

Full Changelog: 0.87.1...0.87.2

0.87.1

01 Nov 19:33
0.87.1
Compare
Choose a tag to compare

Headlines

  • fixed a Controller issue with reconciliation requests disappearing when using concurrency #1324
  • improved Client with better exec auth behaviour #1320, timeout control #1314, and socks5 proxy handling #1311
  • small changes to an unstable streams feature #1304, and a a derive property that is now illegal with syn 2 #1307

Big thanks to everyone involved 🎃

What's Changed

Added

Changed

  • Document Controller::reconcile_on and remove Err input requirement by @clux in #1304
  • Bump base64 to 0.21 by @clux in #1308
  • Upgrade darling and syn and rename #[kube(struct)] by @clux in #1307

Fixed

Full Changelog: 0.86.0...0.87.1

0.86.0

08 Sep 11:31
0.86.0
Compare
Choose a tag to compare

Headlines

k8s-openapi 0.20 for Kubernetes v1_28

Please note upstream api removals.
As usual, upgrade k8s-openapi along with kube to avoid issues.

Default TLS stack changed to rustls

With last year's upstream changes from rustls (closing all our existing rustls issues - see #1192), this is now the better choice for security, features, and ease of building. The previous default openssl stack can still be used with default-features = false plus the openssl-tls feature.

Controller Configuration

A controller Config has been added to allow tweaking two behaviour parameters (debouncing in #1265 and concurrency limits in #1277) of the Controller. Huge thanks to @aryan9600 for his work.

Streaming Lists

The sendInitialEvents alpha feature is now supported, and is quickly testable in the pod_watcher example when using the feature gate. This will help optimise the memory profile of controllers when the feature becomes generally available. Amazing work by first time contributor @casualjim.

What's Changed

Added

  • add controller::Config and debounce period to scheduler by @aryan9600 in #1265
  • adds watch-list implementation without breaking changes by @casualjim in #1255
  • allow configuring controller's concurrency by @aryan9600 in #1277

Changed

  • Change default TLS stack to rustls-tls by @clux in #1261
  • Bump k8s-openapi to 0.20.0 by @clux in #1291

Fixed

  • core: omit invalid resource version parameters when doing paged requests by @goenning in #1281

New Contributors

Full Changelog: 0.85.0...0.86.0

0.85.0

06 Aug 05:21
0.85.0
Compare
Choose a tag to compare

Kubernetes 1.27

This release brings in the new k8s-openapi release.
Be sure to upgrade k8s-openapi and kube simultaneously to avoid multiple version errors:

cargo upgrade -p k8s-openapi -p kube -i

What's Changed

Added

  • Add WatchStreamExt::reflect to allow chaining on a reflector by @clux in #1252
  • Implement ephemeral containers subresource by @jmintb in #1153

Changed

  • Swap dirs-next dependency to cargo-team maintained home crate by @utkarshgupta137 in #1207
  • Upgrade k8s-openapi to 0.19.0 for v1_27 support by @clux in #1271

Fixed

  • watcher: return NoResourceVersion error if resource version is empty by @aryan9600 in #1259
  • Update the scheduler message when preponing by @nightkr in #1260

New Contributors

Full Changelog: 0.84.0...0.85.0