Kubernetes: List all objects using get-all plugin

2 min read | by Jordi Prats

If we need to take a look at the resources of a Kubernetes cluster, by using kubectl get all we won't be able to see all the resources. Most notably, it won't list Ingress objects. You can take a look at this issue for kubectl for the details but we won't be able to get all the resources using this command, we'll have to install the get-all krew plugin

Installing the plugin is as straightforward as:

$ kubectl krew install get-all 

Once we have the plugin installed it is a first-class citizen, we can invoke it using kubectl get-all

$ kubectl get-all NAME NAMESPACE AGE componentstatus/scheduler <unknown>  componentstatus/controller-manager <unknown>  componentstatus/etcd-0 <unknown>  configmap/aws-load-balancer-controller-leader alb-controller 15d  configmap/kube-root-ca.crt alb-controller 15d  configmap/cluster-autoscaler-status autoscaler 2d17h  configmap/kube-root-ca.crt autoscaler 76d  configmap/kube-root-ca.crt default 80d  configmap/kube-root-ca.crt external-dns 6d23h  configmap/pet2cattle-sonarqube-commands pet2cattle 41h  configmap/pet2cattle-sonarqube-config pet2cattle 41h  configmap/pet2cattle-sonarqube-jmx-config pet2cattle 41h  configmap/kube-root-ca.crt pet2cattle 41h  (...) 

We can check the --help output for the exact options but we can use the most common options with get-all such as filtering by namespace:

$ kubectl get-all -n kube-system W0902 16:53:00.357252 106128 warnings.go:70] extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress NAME NAMESPACE AGE configmap/coredns kube-system 58m  configmap/extension-apiserver-authentication kube-system 59m  configmap/kube-proxy kube-system 58m  (...) 

And the label selector:

$ kubectl get-all -l component=etcd NAME NAMESPACE AGE pod/etcd-minikube kube-system 63m  

Posted on 14/09/2021