Skip to main content

☑️ Prevent use of deprecated APIs in Kubernetes v1.19

Kubernetes version 1.19 stopped serving several APIs for different resource types. When deploying a resource with a deprecated API version, the Kubernetes engine will reject it.

The following resources are deprecated in version 1.19:

API versionResource kind
networking.k8s.io/v1beta1Ingress
IngressClass
storage.k8s.io/v1beta1CSIDriver
certificates.k8s.io/v1beta1CertificateSigningRequest
events.k8s.io/v1beta1Event
coordination.k8s.io/v1beta1Lease
LeaseList
apiregistration.k8s.io/v1beta1APIService
APIServiceList

Targeted objects by this rule (types of kind): (See table above)

Complexity: easy (What does this mean?)

Policy as code identifier: K8S_DEPRECATED_APIVERSION_1.19


This rule will fail

If one of the deprecated API versions is used for a resource:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole

Rule output in the CLI

$ datree test *.yaml

>> File: failExample.yaml
❌ Prevent use of deprecated APIs in Kubernetes v1.19 [1 occurrence]
💡 Incorrect value for key `apiVersion` - the version of the resource you are trying to use is deprecated in k8s v1.19

How to fix this failure

Use a supported API version instead of the deprecated one:

Deprecated API versionSupported API version
networking.k8s.io/v1beta1networking.k8s.io/v1
storage.k8s.io/v1beta1storage.k8s.io/v1
certificates.k8s.io/v1beta1certificates.k8s.io/v1
events.k8s.io/v1beta1events.k8s.io/v1
coordination.k8s.io/v1beta1coordination.k8s.io/v1
apiregistration.k8s.io/v1beta1apiregistration.k8s.io/v1

Example:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole

Read more