Skip to content

Commit 557275f

Browse files
authored
Merge pull request kubernetes#84299 from cwdsuzhou/Octo/add_policy_to_describe
Add reclaim policy to kubectl get storage class result
2 parents 59aa8fd + 1488e1e commit 557275f

File tree

2 files changed

+80
-3
lines changed

2 files changed

+80
-3
lines changed

pkg/printers/internalversion/printers.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,9 @@ func AddHandlers(h printers.PrintHandler) {
410410
storageClassColumnDefinitions := []metav1beta1.TableColumnDefinition{
411411
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
412412
{Name: "Provisioner", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["provisioner"]},
413+
{Name: "ReclaimPolicy", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["reclaimPolicy"]},
414+
{Name: "VolumeBindingMode", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["volumeBindingMode"]},
415+
{Name: "AllowVolumeExpansion", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["allowVolumeExpansion"]},
413416
{Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]},
414417
}
415418

@@ -1857,7 +1860,23 @@ func printStorageClass(obj *storage.StorageClass, options printers.GenerateOptio
18571860
name += " (default)"
18581861
}
18591862
provtype := obj.Provisioner
1860-
row.Cells = append(row.Cells, name, provtype, translateTimestampSince(obj.CreationTimestamp))
1863+
reclaimPolicy := string(api.PersistentVolumeReclaimDelete)
1864+
if obj.ReclaimPolicy != nil {
1865+
reclaimPolicy = string(*obj.ReclaimPolicy)
1866+
}
1867+
1868+
volumeBindingMode := string(storage.VolumeBindingImmediate)
1869+
if obj.VolumeBindingMode != nil {
1870+
volumeBindingMode = string(*obj.VolumeBindingMode)
1871+
}
1872+
1873+
allowVolumeExpansion := false
1874+
if obj.AllowVolumeExpansion != nil {
1875+
allowVolumeExpansion = *obj.AllowVolumeExpansion
1876+
}
1877+
1878+
row.Cells = append(row.Cells, name, provtype, reclaimPolicy, volumeBindingMode, allowVolumeExpansion,
1879+
translateTimestampSince(obj.CreationTimestamp))
18611880

18621881
return []metav1beta1.TableRow{row}, nil
18631882
}

pkg/printers/internalversion/printers_test.go

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4386,6 +4386,10 @@ func TestPrintCronJobList(t *testing.T) {
43864386
}
43874387

43884388
func TestPrintStorageClass(t *testing.T) {
4389+
policyDelte := api.PersistentVolumeReclaimDelete
4390+
policyRetain := api.PersistentVolumeReclaimRetain
4391+
bindModeImmediate := storage.VolumeBindingImmediate
4392+
bindModeWait := storage.VolumeBindingWaitForFirstConsumer
43894393
tests := []struct {
43904394
sc storage.StorageClass
43914395
expected []metav1beta1.TableRow
@@ -4398,7 +4402,8 @@ func TestPrintStorageClass(t *testing.T) {
43984402
},
43994403
Provisioner: "kubernetes.io/glusterfs",
44004404
},
4401-
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc1", "kubernetes.io/glusterfs", "0s"}}},
4405+
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc1", "kubernetes.io/glusterfs", "Delete",
4406+
"Immediate", false, "0s"}}},
44024407
},
44034408
{
44044409
sc: storage.StorageClass{
@@ -4408,7 +4413,60 @@ func TestPrintStorageClass(t *testing.T) {
44084413
},
44094414
Provisioner: "kubernetes.io/nfs",
44104415
},
4411-
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc2", "kubernetes.io/nfs", "5m"}}},
4416+
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc2", "kubernetes.io/nfs", "Delete",
4417+
"Immediate", false, "5m"}}},
4418+
},
4419+
{
4420+
sc: storage.StorageClass{
4421+
ObjectMeta: metav1.ObjectMeta{
4422+
Name: "sc3",
4423+
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
4424+
},
4425+
Provisioner: "kubernetes.io/nfs",
4426+
ReclaimPolicy: &policyDelte,
4427+
},
4428+
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc3", "kubernetes.io/nfs", "Delete",
4429+
"Immediate", false, "5m"}}},
4430+
},
4431+
{
4432+
sc: storage.StorageClass{
4433+
ObjectMeta: metav1.ObjectMeta{
4434+
Name: "sc4",
4435+
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
4436+
},
4437+
Provisioner: "kubernetes.io/nfs",
4438+
ReclaimPolicy: &policyRetain,
4439+
VolumeBindingMode: &bindModeImmediate,
4440+
},
4441+
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc4", "kubernetes.io/nfs", "Retain",
4442+
"Immediate", false, "5m"}}},
4443+
},
4444+
{
4445+
sc: storage.StorageClass{
4446+
ObjectMeta: metav1.ObjectMeta{
4447+
Name: "sc5",
4448+
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
4449+
},
4450+
Provisioner: "kubernetes.io/nfs",
4451+
ReclaimPolicy: &policyRetain,
4452+
VolumeBindingMode: &bindModeWait,
4453+
},
4454+
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc5", "kubernetes.io/nfs", "Retain",
4455+
"WaitForFirstConsumer", false, "5m"}}},
4456+
},
4457+
{
4458+
sc: storage.StorageClass{
4459+
ObjectMeta: metav1.ObjectMeta{
4460+
Name: "sc6",
4461+
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
4462+
},
4463+
Provisioner: "kubernetes.io/nfs",
4464+
ReclaimPolicy: &policyRetain,
4465+
AllowVolumeExpansion: boolP(true),
4466+
VolumeBindingMode: &bindModeWait,
4467+
},
4468+
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc6", "kubernetes.io/nfs", "Retain",
4469+
"WaitForFirstConsumer", true, "5m"}}},
44124470
},
44134471
}
44144472

0 commit comments

Comments
 (0)