How fetch all the k8s object which have finalizer attached to it

3/4/2020

I am trying to delete a namespace but it is in terminating state, I tried removing the finalizer and applying replace but not able to succeed. Below are the steps and error

[root@~]# kubectl replace "/api/v1/namespaces/service-catalog/finalize" -f n.json
namespace/service-catalog replaced
[root@~]#
[root@~]#
[root@~]# k get ns service-catalog
NAME              STATUS        AGE
service-catalog   Terminating   6d21h
[root@~]# k delete ns service-catalog
Error from server (Conflict): Operation cannot be fulfilled on namespaces "service-catalog": The system is ensuring all content is removed from this namespace.  Upon completion, this namespace will automatically be purged by the system.

In the namespace I had created few crd objects and my good guess is those are the thing which are preventing it from deletion. Right now I am not able memorise all the crd object that I created.

Is there a way where I can query all the object with the finalizer: service-catalog?

-- prashant
kubernetes

1 Answer

3/4/2020

To get the registered CRD list, use:

$ kubectl get crds
elasticsearches.kubedb.com                       2020-03-03T04:05:13Z
elasticsearchversions.catalog.kubedb.com         2020-03-03T04:05:16Z
etcds.kubedb.com                                 2020-03-03T04:05:13Z
etcdversions.catalog.kubedb.com                  2020-03-03T04:05:16Z
ingresses.voyager.appscode.com                   2020-03-03T05:07:42Z
m3dbclusters.operator.m3db.io                    2020-03-02T10:56:55Z

Once you have the CRDs, you can find the objects of that type in given namespace:

$ kubectl get m3dbclusters.operator.m3db.io -n m3db
NAME           AGE
m3db-cluster   47h

To list all objects along with the finalizers, you can use custom-columns.

# kubectl get <crd-name> -n <namespace> -o custom-columns=Kind:.kind,Name:.metadata.name,Finalizers:.metadata.finalizers

$ kubectl get m3dbclusters.operator.m3db.io -n m3db -o custom-columns=Kind:.kind,Name:.metadata.name,Finalizers:.metadata.finalizers
Kind          Name           Finalizers
M3DBCluster   m3db-cluster   [operator.m3db.io/etcd-deletion]
-- Kamol Hasan
Source: StackOverflow