0.75.0
Highlights
Upgrade k8s-openapi
to 0.16 for Kubernetes 1.25
The update to k8s-openapi@0.16.0 makes this the first release with tentative Kubernetes 1.25 support.
While the new structs and apis now exist, we recommend holding off on using 1.25 until a deserialization bug in the apiserver is resolved upstream. See #997 / #1008 for details.
To upgrade, ensure you bump both kube
and k8s-openapi
:
cargo upgrade kube k8s-openapi
New/Old Config::incluster
default to connect in cluster
Our previous default of connecting to the Kubernetes apiserver via kubernetes.default.svc
has been reverted back to use the old environment variables after Kubernetes updated their position that the environment variables are not legacy. This does unfortunately regress on rustls
support, so for those users we have included a Config::incluster_dns
to work around the old rustls issue while it is open.
Controller error_policy
extension
The error_policy
fn now has access to the object
that failed the reconciliation to ease metric creation / failure attribution. The following change is needed on the user side:
-fn error_policy(error: &Error, ctx: Arc<Data>) -> Action {
+fn error_policy(_obj: Arc<YourObject>, error: &Error, ctx: Arc<Data>) -> Action {
Polish / Subresources / Conversion
There are also a slew of ergonomics improvements, closing of gaps in subresources, adding initial support for ConversionReview
, making Api::namespaced
impossible to use for non-namepaced resources (a common pitfall), as well as many great fixes to the edge cases in portforwarding and finalizers. Many of these changes came from first time contributors. A huge thank you to everyone involved.
What's Changed
Added
- Make
Config::auth_info
public by @danrspencer in #959 - Make raw
Client::send
method public by @tiagolobocastro in #972 - Make
types
onAdmissionRequest
andAdmissionResponse
public by @clux in #977 - Add
#[serde(default)]
to metadata field ofDynamicObject
by @pbzweihander in #987 - Add
create_subresource
method toApi
andcreate_token_request
method toApi<ServiceAccount>
by @pbzweihander in #989 - Controller: impl Eq and PartialEq for
Action
by @Sherlock-Holo in #993 - Add support for CRD
ConversionReview
types by @MikailBag in #999
Changed
- Constrain Resource trait and Api::namespaced by Scope by @clux in #956
- Add connect/read/write timeouts to
Config
by @goenning in #971 - Controller: Include the object being reconciled in the
error_policy
by @felipesere in #995 Config
: Newincluster
andincluster_dns
constructors by @olix0r in #1001- Upgrade
k8s-openapi
to 0.16 by @clux in #1008
Fixed
- Remove
tracing::instrument
fromapply_debug_overrides
by @kazk in #958 - fix duplicate finalizers race condition by @alex-hunt-materialize in #965
- fix: portforward connection cleanup by @tiagolobocastro in #973
New Contributors
- @danrspencer made their first contribution in #959
- @alex-hunt-materialize made their first contribution in #965
- @tiagolobocastro made their first contribution in #972
- @goenning made their first contribution in #971
- @pbzweihander made their first contribution in #987
- @Sherlock-Holo made their first contribution in #993
- @felipesere made their first contribution in #995
Full Changelog: 0.74.0...0.75.0