From c0c62e7826508c65bb9546ba412eb0a76c038553 Mon Sep 17 00:00:00 2001 From: Tuan Anh Pham Date: Tue, 2 Aug 2022 04:28:52 +0700 Subject: [PATCH] Fix persistentvolumes not showing terminating status (#1682) @anhpngt Doh!! indeed... Thank you for the fix Tuan! I see what's happening with the renderer. Will fix in the next drop... --- internal/render/pv.go | 4 +- internal/render/pv_test.go | 9 +++ internal/render/testdata/pv_terminating.json | 74 ++++++++++++++++++++ 3 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 internal/render/testdata/pv_terminating.json diff --git a/internal/render/pv.go b/internal/render/pv.go index c8908d2e..69e8d5dd 100644 --- a/internal/render/pv.go +++ b/internal/render/pv.go @@ -75,7 +75,7 @@ func (p PersistentVolume) Render(o interface{}, ns string, r *Row) error { phase := pv.Status.Phase if pv.ObjectMeta.DeletionTimestamp != nil { - phase = "Terminated" + phase = "Terminating" } var claim string if pv.Spec.ClaimRef != nil { @@ -94,7 +94,7 @@ func (p PersistentVolume) Render(o interface{}, ns string, r *Row) error { size.String(), accessMode(pv.Spec.AccessModes), string(pv.Spec.PersistentVolumeReclaimPolicy), - string(pv.Status.Phase), + string(phase), claim, class, pv.Status.Reason, diff --git a/internal/render/pv_test.go b/internal/render/pv_test.go index a0fa3927..e283dd44 100644 --- a/internal/render/pv_test.go +++ b/internal/render/pv_test.go @@ -15,3 +15,12 @@ func TestPersistentVolumeRender(t *testing.T) { assert.Equal(t, "-/pvc-07aa4e2c-8726-11e9-a8e8-42010a80015b", r.ID) assert.Equal(t, render.Fields{"pvc-07aa4e2c-8726-11e9-a8e8-42010a80015b", "1Gi", "RWO", "Delete", "Bound", "default/www-nginx-sts-1", "standard"}, r.Fields[:7]) } + +func TestTerminatingPersistentVolumeRender(t *testing.T) { + c := render.PersistentVolume{} + r := render.NewRow(9) + c.Render(load(t, "pv_terminating"), "-", &r) + + assert.Equal(t, "-/pvc-a4d86f51-916c-476b-83af-b551c91a8ac0", r.ID) + assert.Equal(t, render.Fields{"pvc-a4d86f51-916c-476b-83af-b551c91a8ac0", "1Gi", "RWO", "Delete", "Terminating", "default/www-nginx-sts-2", "standard"}, r.Fields[:7]) +} diff --git a/internal/render/testdata/pv_terminating.json b/internal/render/testdata/pv_terminating.json new file mode 100644 index 00000000..75f59809 --- /dev/null +++ b/internal/render/testdata/pv_terminating.json @@ -0,0 +1,74 @@ +{ + "apiVersion": "v1", + "kind": "PersistentVolume", + "metadata": { + "annotations": { + "kubernetes.io/createdby": "gce-pd-dynamic-provisioner", + "pv.kubernetes.io/bound-by-controller": "yes", + "pv.kubernetes.io/provisioned-by": "kubernetes.io/gce-pd" + }, + "creationTimestamp": "2022-06-22T03:45:57Z", + "deletionGracePeriodSeconds": 0, + "deletionTimestamp": "2022-07-21T14:11:00Z", + "finalizers": [ + "kubernetes.io/pv-protection" + ], + "labels": { + "topology.kubernetes.io/region": "asia-southeast1", + "topology.kubernetes.io/zone": "asia-southeast1-b" + }, + "name": "pvc-a4d86f51-916c-476b-83af-b551c91a8ac0", + "resourceVersion": "29037811", + "uid": "aa195b1a-0e00-43e6-aad9-d4b016904930" + }, + "spec": { + "accessModes": [ + "ReadWriteOnce" + ], + "capacity": { + "storage": "1Gi" + }, + "claimRef": { + "apiVersion": "v1", + "kind": "PersistentVolumeClaim", + "name": "www-nginx-sts-2", + "namespace": "default", + "resourceVersion": "4028123", + "uid": "a4d86f51-916c-476b-83af-b551c91a8ac0" + }, + "gcePersistentDisk": { + "fsType": "ext4", + "pdName": "gke-k9s-fd5bf60e-pvc-a4d86f51-916c-476b-83af-b551c91a8ac0" + }, + "nodeAffinity": { + "required": { + "nodeSelectorTerms": [ + { + "matchExpressions": [ + { + "key": "topology.kubernetes.io/zone", + "operator": "In", + "values": [ + "asia-southeast1-b" + ] + }, + { + "key": "topology.kubernetes.io/region", + "operator": "In", + "values": [ + "asia-southeast1" + ] + } + ] + } + ] + } + }, + "persistentVolumeReclaimPolicy": "Delete", + "storageClassName": "standard", + "volumeMode": "Filesystem" + }, + "status": { + "phase": "Bound" + } +} \ No newline at end of file