beta API version · group apiextensions.k8s.io
apiextensions.k8s.io/v1beta1
Removed in 1.22
No Kubernetes release since 1.22 serves apiVersion: apiextensions.k8s.io/v1beta1. Objects that were stored through it are still in etcd and readable through the replacement version; only manifests and clients that name this version break.
Kinds in apiextensions.k8s.io/v1beta1
| Kind | Introduced | Deprecated | Stops being served | Use instead |
|---|---|---|---|---|
| ConversionReview | 1.13 | 1.19 | 1.22 | apiextensions.k8s.io/v1 |
| CustomResourceDefinition | 1.7 | 1.16 | 1.22 | apiextensions.k8s.io/v1 |
Served in which releases
served served, deprecated exists but off by default not served · 1.16 to 1.37
Migrating off apiextensions.k8s.io/v1beta1
CustomResourceDefinition removed in 1.22
Move to apiextensions.k8s.io/v1, served since 1.16. Existing objects stay readable through the new version.
What changes:
spec.scopeis no longer defaulted toNamespacedand must be explicitly specifiedspec.versionis removed in v1; usespec.versionsinsteadspec.validationis removed in v1; usespec.versions[*].schemainsteadspec.subresourcesis removed in v1; usespec.versions[*].subresourcesinsteadspec.additionalPrinterColumnsis removed in v1; usespec.versions[*].additionalPrinterColumnsinsteadspec.conversion.webhookClientConfigis moved tospec.conversion.webhook.clientConfigin v1spec.conversion.conversionReviewVersionsis moved tospec.conversion.webhook.conversionReviewVersionsin v1spec.versions[*].schema.openAPIV3Schemais now required when creating v1 CustomResourceDefinition objects, and must be a structural schemaspec.preserveUnknownFields: trueis disallowed when creating v1 CustomResourceDefinition objects; it must be specified within schema definitions asx-kubernetes-preserve-unknown-fields: true- In
additionalPrinterColumnsitems, theJSONPathfield was renamed tojsonPathin v1 (fixes #66531)
- apiVersion: apiextensions.k8s.io/v1beta1
+ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinitionFrom the Kubernetes Deprecated API Migration Guide, © The Kubernetes Authors, CC BY 4.0.
To convert files mechanically: kubectl convert -f old.yaml --output-version apiextensions.k8s.io/v1 (the kubectl-convert plugin, installed separately). Review defaults it fills in.
Other versions of apiextensions.k8s.io
apiextensions.k8s.io/v1 Stable
Check your manifests for apiextensions.k8s.io/v1beta1 and other removed versions →