Releases: kube-rs/kube
0.91.0
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 Controller
s (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
- Add shared stream interfaces by @mateiidavid in #1449
- Allow to create non-controller owner reference for resource by @Danil-Grigorev in #1475
- feat(runtime): support for owned shared streams by @mateiidavid in #1483
Changed
Removed
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
- @tyrone-wu made their first contribution in #1466
- @XAMPPRocky made their first contribution in #1481
Full Changelog: 0.90.0...0.91.0
0.90.0
Highlights
kube::client::Body
Improvements
- Unit testing helpers #1444 + #1445,
- Accuracy;
size_hint
andis_end_stream
implemented in #1452 + internal cleanups #1453 and #1455
Dependency Cleanups
rustls
to 0.23 in #1457once_cell
removed in #1447 (no longer needed)futures
feature prune in #1442chrono
features prune in #1448, and bump its min version pin in #1458
What's Changed
Added
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
featureclock
withnow
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
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
andClient::list
by @clux in #1375 - direct node access logs/portforward/exec/attach via kubelet debug interface by @XciD in #1428
Changed
- Bump MSRV to
1.75.0
by @clux in #1408 - Ease the bound for
reflector
to only request identifying metadata by @SOF3 in #1393 - Update base64 requirement from 0.21.4 to 0.22.0 by @dependabot in #1422
- upgrade
jsonpath-rust
to 0.5.0 by @clux in #1429 - update to hyper 1 by @tottoto in #1438
Fixed
- Serialize TerminalSize fields as PascalCase by @nightkr in #1407
Kubeconfig
allowcertificate_authority_data
not present inExecAuthCluster
by @ljun20160606 in #1432- fix: check err on
Client::request_stream
by @XciD in #1433
New Contributors
- @SOF3 made their first contribution in #1393
- @ljun20160606 made their first contribution in #1432
- @XciD made their first contribution in #1433
- @tottoto made their first contribution in #1438
Full Changelog: 0.88.1...0.89.0
0.88.1
0.88.0
Kubernetes v1_29
support via k8s-openapi
0.21
Please upgrade k8s-openapi along with kube to avoid conflicts.
What's Changed
Added
- Add type meta data for list types by @Danil-Grigorev in #1380
Changed
- Bump MSRV to 1.70 by @clux in #1384
- Upgrade
k8s-openapi
for Kubernetesv1_29
support by @clux in #1394
New Contributors
- @Danil-Grigorev made their first contribution in #1380
Full Changelog: 0.87.2...0.88.0
0.87.2
What's Changed
Added
- Add support for
LogParams::since_time
by @clux in #1342 - Provide cluster info to exec plugins by @aviramha in #1331
- Allow setting a description on a derived CRD by @sbernauer in #1359
Changed
- Bump MSRV from 1.64 to 1.65 by @clux in #1353
- Switch from
jsonpath_lib
tojsonpath-rust
by @ilya-bobyr in #1345
New Contributors
- @MathiasPius made their first contribution in #1341
- @ilya-bobyr made their first contribution in #1345
- @NickLarsenNZ made their first contribution in #1378
Full Changelog: 0.87.1...0.87.2
0.87.1
Headlines
- fixed a
Controller
issue with reconciliation requests disappearing when usingconcurrency
#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
- Feature-flagged support for
socks5
proxy inClient
by @Razz4780 in #1311 - Add example for raw API Server requests by @mateiidavid in #1330
Changed
- Document
Controller::reconcile_on
and removeErr
input requirement by @clux in #1304 - Bump
base64
to0.21
by @clux in #1308 - Upgrade
darling
andsyn
and rename#[kube(struct)]
by @clux in #1307
Fixed
- Fixed
KUBERNETES_EXEC_INFO
environment variable passed to auth plugins by @Razz4780 in #1320 - Fix
Controller
: pending messages are stuck in thescheduled
map by @co42 in #1324 - Set a default write timeout by @alex-hunt-materialize in #1314
Full Changelog: 0.86.0...0.87.1
0.86.0
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
New Contributors
- @casualjim made their first contribution in #1255
- @ymgyt made their first contribution in #1290
Full Changelog: 0.85.0...0.86.0
0.85.0
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 maintainedhome
crate by @utkarshgupta137 in #1207 - Upgrade
k8s-openapi
to0.19.0
forv1_27
support by @clux in #1271
Fixed
watcher
: returnNoResourceVersion
error if resource version is empty by @aryan9600 in #1259- Update the
scheduler
message when preponing by @nightkr in #1260
New Contributors
- @utkarshgupta137 made their first contribution in #1207
- @jdockerty made their first contribution in #1269
Full Changelog: 0.84.0...0.85.0
0.84.0
Highlights
Stream Improvements
On the runtime
side, the Controller
now delays reconciles until the main Store
is ready (via a new Store
helper from #1243). The stream selection for owned resources is more efficient (#1240), and the underlying watcher
streams now all paginate (#1249). There are also many new WatchStreamExt
helpers ( #1246 + #1228 + #1232) as a continued work towards the more customisable streams-api (#1080).
On the client-side; streaming logs are now easier to deal with as an AsyncBufRead
#1235.
OIDC Refresh
Optional OIDC refreshable token support was introduced in #1229 under kube/oidc
for out-of-cluster Client
configuration. Previously, refresh support was limited to non-OIDC tokens from the GcpOuth
provider (kube/oauth
) or through arbitrary exec
calls / TokenFile
loading.
What's Changed
Added
- Add
Predicate
trait to allow combination + fallbacks by @clux in #1228 - Added refreshing OIDC ID token as an optional feature by @Razz4780 in #1229
- Add
WatchStreamExt::default_backoff
shorthand by @clux in #1232 - Derive
PartialEq
oncore
params structs by @danrspencer in #1237 - Track store readiness by @nightkr in #1243
- Add
WatchStreamExt::modify()
to modify events by @aryan9600 in #1246 - Add default pagination to
watcher
by @clux in #1249
Changed
- Bump MSRV from 1.63 to 1.64 by @clux in #1233
- Change
Api::log_stream
to returnAsyncBufRead
by @aryan9600 in #1235
Fixed
New Contributors
- @emilsivervik made their first contribution in #1230
- @Razz4780 made their first contribution in #1229
- @aryan9600 made their first contribution in #1235
Full Changelog: 0.83.0...0.84.0