2 min read | by Jordi Prats
On a Kubernetes cluster we might have deprecated versions of the object, so after updating it we might end up with something not properly working:
$ kubectl api-resources | grep Ingress\$
ingresses ing extensions/v1beta1 true Ingress
ingresses ing networking.k8s.io/v1 true Ingress
To make sure we are not going to face this issue, we can use kubepug (PreUpGrade). To install it we can also use it as a krew plugin, it's called deprecations:
$ kubectl krew install deprecations
You can check the current status with:
$ kubectl deprecations
RESULTS:
Deprecated APIs:
ComponentStatus found in /v1
├─ ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+
-> GLOBAL: scheduler
-> GLOBAL: controller-manager
-> GLOBAL: etcd-0
PodSecurityPolicy found in policy/v1beta1
├─ PodSecurityPolicy governs the ability to make requests that affect the Security Context that will be applied to a pod and container. Deprecated in 1.21.
-> GLOBAL: aws-node-termination-handler
-> GLOBAL: eks.privileged
Deleted APIs:
Ingress found in extensions/v1beta1
├─ API REMOVED FROM THE CURRENT VERSION AND SHOULD BE MIGRATED IMMEDIATELY!!
-> OBJECT: pet2cattle-private namespace: pet2cattle
-> OBJECT: pet2cattle-public namespace: pet2cattle
If we need to check the status once we update to a specific version we just need to specify it using the --k8s-version:
$ kubectl deprecations --k8s-version=v1.21.1
This way we will be able to see what needs to be fixed before even updating the cluster
Posted on 23/09/2021