From 22370d925e0772d7492db60677330d94211ae6ce Mon Sep 17 00:00:00 2001 From: pospispa Date: Thu, 9 Nov 2017 14:08:19 +0100 Subject: [PATCH] kubectl: Add Terminating state to PVCs kubectl should show something when a PVC has a deletion timestamp and is waiting for deletion. This patch follows Pod - it adds Terminating state. For easier discovery of errors, finalizers are printed in `kubectl describe pvc`. --- pkg/printers/internalversion/describe.go | 7 ++++++- pkg/printers/internalversion/printers.go | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/printers/internalversion/describe.go b/pkg/printers/internalversion/describe.go index 4392e8e7dbb..acfdf01cdfd 100644 --- a/pkg/printers/internalversion/describe.go +++ b/pkg/printers/internalversion/describe.go @@ -1191,10 +1191,15 @@ func describePersistentVolumeClaim(pvc *api.PersistentVolumeClaim, events *api.E w.Write(LEVEL_0, "Name:\t%s\n", pvc.Name) w.Write(LEVEL_0, "Namespace:\t%s\n", pvc.Namespace) w.Write(LEVEL_0, "StorageClass:\t%s\n", helper.GetPersistentVolumeClaimClass(pvc)) - w.Write(LEVEL_0, "Status:\t%v\n", pvc.Status.Phase) + if pvc.ObjectMeta.DeletionTimestamp != nil { + w.Write(LEVEL_0, "Status:\tTerminating (since %s)\n", pvc.ObjectMeta.DeletionTimestamp.Time.Format(time.RFC1123Z)) + } else { + w.Write(LEVEL_0, "Status:\t%v\n", pvc.Status.Phase) + } w.Write(LEVEL_0, "Volume:\t%s\n", pvc.Spec.VolumeName) printLabelsMultiline(w, "Labels", pvc.Labels) printAnnotationsMultiline(w, "Annotations", pvc.Annotations) + w.Write(LEVEL_0, "Finalizers:\t%v\n", pvc.ObjectMeta.Finalizers) storage := pvc.Spec.Resources.Requests[api.ResourceStorage] capacity := "" accessModes := "" diff --git a/pkg/printers/internalversion/printers.go b/pkg/printers/internalversion/printers.go index 2c52c5e22fe..0b8d1b19216 100644 --- a/pkg/printers/internalversion/printers.go +++ b/pkg/printers/internalversion/printers.go @@ -1226,6 +1226,10 @@ func printPersistentVolumeClaim(obj *api.PersistentVolumeClaim, options printers } phase := obj.Status.Phase + if obj.ObjectMeta.DeletionTimestamp != nil { + phase = "Terminating" + } + storage := obj.Spec.Resources.Requests[api.ResourceStorage] capacity := "" accessModes := ""