We are preparing to upgrade our platforms to Kubernetes 1.22, which drops support for many deprecated API versions! This is the final call to make sure you’ve updated your manifests, Helm charts (*), etc. to make use of the newest APIs (mainly Ingress, but some others too). Make sure to check out the deprecated API migration guide for more info. Below you will find more details on some of the most common deprecated resources used by our customers.
To try and pinpoint which specific resources are affecteed, we will also perform some scans. Keep an eye out on your GitHub repo in the coming days with the scan results.
Important: We’re setting a deadline of Monday 30th of May. After this date we will start with the upgrade process.
(*) Watch out, this also incluses 3rd party Helm charts you might be using!
Deprecated API removal for Ingress
You need to migrate your Ingress
resources to the GA apiVersion of networking.k8s.io/v1
!
Notable changes between extensions/v1beta1
, networking.k8s.io/v1beta1
and networking.k8s.io/v1
:
spec.backend
is renamed tospec.defaultBackend
- The backend
serviceName
field is renamed toservice.name
- Numeric backend
servicePort
fields are renamed toservice.port.number
- String backend
servicePort
fields are renamed toservice.port.name
pathType
is now required for each specified path. Options arePrefix
,Exact
, andImplementationSpecific
. Usually it’sPrefix
you want, however to match the undefinedv1beta1
behavior, useImplementationSpecific
The networking.k8s.io/v1
spec also comes with an ingressClassName
field as replacement for the deprecated kubernetes.io/ingress.class
annotation. By default, on our platform you should set ingressClassName: nginx
or ingressClassName: nginx-internal
respectively.
For example, a simple Ingress resource would look like this:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/tls-acme: "true"
name: marketing-website
namespace: production
spec:
ingressClassName: nginx
rules:
- host: www.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
name: http
tls:
- secretName: www-example-com-tls
hosts:
- www.example.com
Check out the upstream Ingress page for more examples.
Deprecated API removal for RBAC
Similar to Ingress, Kubernetes 1.22 will drop support for the rbac.authorization.k8s.io/v1beta1
API version. This impacts the resources: ClusterRole
, ClusterRoleBinding
, Role
, and RoleBinding
.
Please make sure to update the apiVersion
of these resources to rbac.authorization.k8s.io/v1
.