While playing around with https://rook.io, teardown/cleanup did not work as smoothly as I had hoped.
Specifically, I had a stuck
namespace rook and
clusters.rook.io. This is probably due to blindly copying teardown
It seemed as if only these two objects were stuck, due to finalizers watching over them that were waiting on some sort of confirmation that was never going to come... This is what I ended up doing, adapted from a comment on a similar GitHub issue:
k get ns rook -o json > rook-ns.json <edit to remove the spec.finalizers entries, leaving an empty list> kubectl proxy --port=8080 # in another terminal curl -H "Content-Type: application/json" -X PUT --data-binary \ @rook-ns.json http://localhost:8080/api/v1/namespaces/rook/finalize
For the CRD, I had to GET the API until I found the right endpoint, ending up with:
k get crd clusters.rook.io -o json > crd-clusters.rook.io.json <remove the metadata.finalizers entries this time> curl -H "Content-Type: application/json" -X PUT --data-binary \ @crd-clusters.rook.io.json http://localhost:8080/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/clusters.rook.io
And then of course clean up the
dataDirHostPath defined in
rook-cluster.yaml's Rook Cluster object on the nodes.
Oh... and Ahmet's kubectl aliases are amazingly useful!