Ada sebuah kejadian di project yang cukup membuat frustasi penulis ketika melakukan penghapusan sebuah project/namespace pada openshift, yaitu namespace yang akan dihapus tidak terhapus walaupun sudah dipaksa untuk dihapus dengan menggunakan parameter –force –grace-period=0 , proses penghapusan stuck seperti gambar di bawah ini :
dan pada saat dilakukan describe namespace tersebut, stuck di status terminating
Setelah bergoogling-googling ria dan bertanya pada ahlinya cc : mas @alan-prasetyo , titik terang untuk menghapus mulai terlihat. Hal itu bisa terjadi karena ketika melakukan penghapusan namespace, masih terdapat objek yang belum dihapus di dalamnya. Penulis baru tersadar bahwa objek yang masih ada hanyalah StorageCluster .
Lakukan penghapusan namespace dengan call API. Berikut langkah-langkahnya :
- Get namespace status ke dalam file json
oc get namespace openshift-storage -o json > tmp_ns.json
- Remove kata “kubernetes” ( dibawah kata “finalizers”)
vi tmp_ns.json
- Buat koneksi proxy ke cluster ( jalankan di background )
oc proxy &
- Push isi file json yang sebelumnya dibuat ke dalam cluster dengan menggunakan curl
curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp_ns.json http://127.0.0.1:8001/api/v1/namespaces/openshift-storage/finalize
- Namespace seharusnya sudah terhapus, maka diperlukan untuk cek
oc get ns openshift-storage
response : namespaces not found
- Kill koneksi proxy yang sebelumnya dibuat dengan cara ketikan perintah fg untuk switch proses tersebut ke foreground, lalu ctrl + c untuk kill proses tersebut.
Note : Jika terdapat utilitas jq (JSON query), untuk langkah nomor 1 & 2 dapat diperingkas dengan command di bawah
oc get namespace openshift-storage -o json | jq '.spec = {"finalizers":[]}' > tmp_ns.json
Semoga bermanfaat.
Ref : https://stackoverflow.com/questions/58638297/project-deletion-struck-in-terminating