Releases: Arnavion/k8s-openapi
v0.24.0
k8s-openapi
-
BREAKING CHANGE: Added support for Kubernetes 1.32 under the
v1_32
feature. -
BREAKING CHANGE: Dropped support for Kubernetes 1.26 and 1.27.
Corresponding Kubernetes API server versions:
- v1.28.15
- v1.29.12
- v1.30.8
- v1.31.4
- v1.32.0
k8s-openapi-codegen-common
- No changes.
k8s-openapi-derive
- No changes except to bump the
k8s-openapi-codegen-common
dependency to the new version.
v0.23.0
k8s-openapi
-
BREAKING CHANGE: Added support for Kubernetes 1.31 under the
v1_31
feature. -
BREAKING CHANGE: Dropped support for Kubernetes 1.24 and 1.25.
Corresponding Kubernetes API server versions:
- v1.26.15
- v1.27.16
- v1.28.14
- v1.29.9
- v1.30.5
- v1.31.1
k8s-openapi-codegen-common
- No changes.
k8s-openapi-derive
- No changes except to bump the
k8s-openapi-codegen-common
dependency to the new version.
v0.22.0
k8s-openapi
- BREAKING CHANGE: Added support for Kubernetes 1.30 under the
v1_30
feature.
Corresponding Kubernetes API server versions:
- v1.24.17
- v1.25.16
- v1.26.15
- v1.27.13
- v1.28.9
- v1.29.4
- v1.30.0
k8s-openapi-codegen-common
- No changes.
k8s-openapi-derive
- No changes except to bump the
k8s-openapi-codegen-common
dependency to the new version.
v0.21.1
k8s-openapi
- BUGFIX: Fix
schemars::JsonSchema
impl ofk8s_openapi::apimachinery::pkg::util::intstr::IntOrString
to be in line with what Kubernetes expects of int-or-string fields in CRDs.
Corresponding Kubernetes API server versions:
- v1.24.17
- v1.25.16
- v1.26.14
- v1.27.11
- v1.28.7
- v1.29.2
k8s-openapi-codegen-common
- BUGFIX: See the bugfix mentioned above.
k8s-openapi-derive
- No changes except to bump the
k8s-openapi-codegen-common
dependency to the new version.
v0.21.0
k8s-openapi
-
BREAKING CHANGE: Added support for Kubernetes 1.29 under the
v1_29
feature. -
BREAKING CHANGE: Dropped support for Kubernetes 1.22 and 1.23.
Corresponding Kubernetes API server versions:
- v1.24.17
- v1.25.16
- v1.26.13
- v1.27.10
- v1.28.6
- v1.29.1
k8s-openapi-codegen-common
- No changes.
k8s-openapi-derive
- No changes.
v0.20.0
v0.20.0 (2023-09-07)
k8s-openapi
-
BREAKING CHANGE: This release removes all associated methods of resource types that mapped API operations. For example, there is no more
fn api::core::v1::Pod::list()
, and all types related to API operations likeListOptional
andResponseBody
have also been removed. See #149 for more details. -
BREAKING CHANGE: Added support for Kubernetes 1.28 under the
v1_28
feature. -
BREAKING CHANGE: Dropped support for Kubernetes 1.20 and 1.21.
Corresponding Kubernetes API server versions:
- v1.22.17
- v1.23.17
- v1.24.17
- v1.25.13
- v1.26.8
- v1.27.5
- v1.28.1
k8s-openapi-codegen-common
- BREAKING CHANGE:
write_operation
and other things related to emitting API operations have been removed.
k8s-openapi-derive
- BREAKING CHANGE: The generated resource type no longer has associated clientset methods for listing etc.
v0.19.0
k8s-openapi
-
BREAKING CHANGE: Added support for Kubernetes 1.27 under the
v1_27
feature. -
FEATURE: The
k8s-openapi
now has two additional Cargo featuresearliest
andlatest
, which select the earliest and latest supported version. For example, in this release,earliest
is equivalent tov1_20
andlatest
is equivalent tov1_27
.
Corresponding Kubernetes API server versions:
- v1.20.15
- v1.21.14
- v1.22.17
- v1.23.17
- v1.24.16
- v1.25.12
- v1.26.7
- v1.27.4
k8s-openapi-codegen-common
- No changes.
k8s-openapi-derive
- No changes.
v0.18.0
k8s-openapi
-
BREAKING CHANGE: The
k8s_openapi::DeepMerge
trait and its impls on this crate's types now have semantics in line with merge strategies in Kubernetes. Specifically, the code generator now takes thex-kubernetes-list-map-keys
,x-kubernetes-list-type
,x-kubernetes-map-type
,x-kubernetes-patch-merge-key
andx-kubernetes-patch-strategy
annotations into account when generating theDeepMerge
impls.For example, in v0.17.0,
PodSpec::merge_from
would append entries intoself.containers
, whereas now it does a "list-map" strategy to replace containers with the samename
.
Corresponding Kubernetes API server versions:
- v1.20.15
- v1.21.14
- v1.22.17
- v1.23.17
- v1.24.12
- v1.25.8
- v1.26.3
k8s-openapi-codegen-common
- BREAKING CHANGE: As mentioned above, the generated code for
k8s_openapi::DeepMerge
impls now takes merge strategy annotations into account.
k8s-openapi-derive
- No changes.
v0.17.0
k8s-openapi
-
BREAKING CHANGE: Added support for Kubernetes 1.26 under the
v1_26
feature. -
BREAKING CHANGE: Dropped support for Kubernetes 1.18 and 1.19.
-
FEATURE: Allow deserializing non-optional
ByteString
s from JSONnull
. The API server is known to allow thesenull
s in theConfigMap::binary_data
andSecret::data
maps. The deserialization results in an emptyByteString
, to match the behavior of the API server when given anull
value in theConfigMap::data
map.
Corresponding Kubernetes API server versions:
- v1.20.15
- v1.21.14
- v1.22.17
- v1.23.15
- v1.24.9
- v1.25.5
- v1.26.0
v0.16.0
k8s-openapi
-
BREAKING CHANGE: Added support for Kubernetes 1.25 under the
v1_25
feature. -
FEATURE: All spec types now implement a deep-merge API via a
DeepMerge
trait impl with afn merge_from(&mut self, other: Self)
method. This is useful for builder-like operations.
Corresponding Kubernetes API server versions:
- v1.18.20
- v1.19.16
- v1.20.15
- v1.21.14
- v1.22.14
- v1.23.11
- v1.24.5
- v1.25.1
k8s-openapi-codegen-common
- No changes.
k8s-openapi-derive
-
BREAKING CHANGE:
#[derive(CustomResourceDefinition)]
no longer generates a list type alias. For example, when applied tostruct FooSpec
, previously the custom derive would generatepub type FooList = k8s_openapi::List<Foo>;
It no longer does this, in accordance with the main k8s-openapi crate where such aliases were removed back in v0.7.0 -
FEATURE: The generated custom resource type will implement
k8s_openapi::DeepMerge
if theimpl_deep_merge
custom derive attribute is used. Note that this requires you to implementk8s_openapi::DeepMerge
on the spec type yourself; the custom derive does not do that.