Releases: Arnavion/k8s-openapi
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.
v0.15.0 (2022-05-22)
k8s-openapi
-
BREAKING CHANGE: The
pretty
optional parameter has been removed from all operations. Setting this parameter totrue
would've made the API server pretty-print the JSON response, which is meaningless for a programmatic client. -
BREAKING CHANGE: In addition to the previous change, the
exact
andexport
parameters have been removed from all read operations (egPod::read_namespaced_pod
). These parameters were removed in Kubernetes v1.21 and were known to be broken before that, and would've caused the server response to not be able to be parsed correctly via the operation's response type anyway.All read operations with the exception of
Pod::read_namespaced_pod_log
had only these three optional parameters, so now that they've been removed such read operations don't have anoptional: ReadFooOptional<'_>
parameter at all. -
BREAKING CHANGE: Operation names no longer include the
_namespaced
part and the resource type name. For example,Pod::read_namespaced_pod
is now justPod::read
. The corresponding optional parameters type and response type no longer include theNamespaced
part, egReadNamespacedPodResponse
is now justReadPodResponse
. -
BREAKING CHANGE: Added support for Kubernetes 1.24 under the
v1_24
feature. -
BREAKING CHANGE: Dropped support for Kubernetes 1.16 and 1.17.
-
FEATURE: The
K8S_OPENAPI_ENABLED_VERSION
env var can now be set at build time to enable a specific API version, just like enabling a specific version feature would've done. This is only meant to be used by library developers who want to runcargo check
,cargo doc
, etc commands, for which the previous advice of enabling a version feature via a dev dependency would not work.
Corresponding Kubernetes API server versions:
- v1.18.20
- v1.19.16
- v1.20.15
- v1.21.12
- v1.22.9
- v1.23.6
- v1.24.0