I am using Kubent to diagnose API deprecation before upgrading my Kubernetes cluster. I am having hard time finding information on how to properly read the programs' output.
-----------
>>> Deprecated APIs removed in 1.22 <<<
-----------
KIND NAMESPACE NAME API_VERSION REPLACE_WITH (SINCE)
ClusterRoleBinding <undefined> kubernetes-dashboard rbac.authorization.k8s.io/v1beta1 rbac.authorization.k8s.io/v1 (1.8.0)
CustomResourceDefinition <undefined> authorizationpolicies.security.istio.io apiextensions.k8s.io/v1beta1 apiextensions.k8s.io/v1 (1.16.0)
Notice the Column REPLACE_WITH (SINCE), which created my confusion because k8 is far from 1.8.0 version. Also, the Deprecated APIs...
message suggest that those Endpoints enclosed in <<>>
will be deprecated in the last release.
So, may you please explain how should this output be interpreted?
Kube No Trouble (kubent) has a defined set of rules which are used to determine deprecated APIs.
For example, below we can see the rule for ClusterRoleBinding
:
"ClusterRoleBinding": {
"old": ["rbac.authorization.k8s.io/v1beta1"],
"new": "rbac.authorization.k8s.io/v1",
"since": "1.8",
},
The rbac.authorization.k8s.io/v1beta1
API has been promoted to rbac.authorization.k8s.io/v1
in the v1.8 and this is the reason this specific Kubernetes version is mentioned in the rule above (see: Deprecated API Migration Guide).
Additionally, please note that the rbac.authorization.k8s.io/v1beta1
API version of ClusterRole, ClusterRoleBinding, Role, and RoleBinding is no longer served as of v1.22.