Archive · Kubernetes

Kubernetes 1.22: Removed APIs to Fix Before Upgrading

Release 1.22 (4 August 2021) removes several beta APIs. Find and migrate them.

1 min read

  • Kubernetes 1.22
  • kubectl-convert
  • pluto

Kubernetes 1.22 was released on 4 August 2021 and removes a batch of long-deprecated beta APIs. Manifests using them fail on a 1.22 cluster.

Removed in 1.22 Use instead
extensions/v1beta1, networking.k8s.io/v1beta1 Ingress networking.k8s.io/v1
apiextensions.k8s.io/v1beta1 CustomResourceDefinition apiextensions.k8s.io/v1
admissionregistration.k8s.io/v1beta1 webhooks v1
certificates.k8s.io/v1beta1 CSR v1

Find problems before upgrading:

kubectl get --raw /metrics | grep apiserver_requested_deprecated_apis
pluto detect-files -d ./manifests          # scans YAML for deprecated apiVersions
helm mapkubeapis my-release                # updates stored Helm release manifests

The new v1 Ingress needs pathType and service.name/port. Update Helm charts and operators too, since old controller versions may still create v1beta1 objects. Upgrade tools first, the cluster second.