How to read Kubent output?

2/8/2022

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?

-- RicarHincapie
kubernetes

1 Answer

2/10/2022

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.

-- matt_j
Source: StackOverflow