mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 05:27:21 +00:00
Merge pull request #84299 from cwdsuzhou/Octo/add_policy_to_describe
Add reclaim policy to kubectl get storage class result
This commit is contained in:
commit
557275f1d1
@ -410,6 +410,9 @@ func AddHandlers(h printers.PrintHandler) {
|
|||||||
storageClassColumnDefinitions := []metav1beta1.TableColumnDefinition{
|
storageClassColumnDefinitions := []metav1beta1.TableColumnDefinition{
|
||||||
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
|
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
|
||||||
{Name: "Provisioner", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["provisioner"]},
|
{Name: "Provisioner", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["provisioner"]},
|
||||||
|
{Name: "ReclaimPolicy", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["reclaimPolicy"]},
|
||||||
|
{Name: "VolumeBindingMode", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["volumeBindingMode"]},
|
||||||
|
{Name: "AllowVolumeExpansion", Type: "string", Description: storagev1.StorageClass{}.SwaggerDoc()["allowVolumeExpansion"]},
|
||||||
{Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]},
|
{Name: "Age", Type: "string", Description: metav1.ObjectMeta{}.SwaggerDoc()["creationTimestamp"]},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1857,7 +1860,23 @@ func printStorageClass(obj *storage.StorageClass, options printers.GenerateOptio
|
|||||||
name += " (default)"
|
name += " (default)"
|
||||||
}
|
}
|
||||||
provtype := obj.Provisioner
|
provtype := obj.Provisioner
|
||||||
row.Cells = append(row.Cells, name, provtype, translateTimestampSince(obj.CreationTimestamp))
|
reclaimPolicy := string(api.PersistentVolumeReclaimDelete)
|
||||||
|
if obj.ReclaimPolicy != nil {
|
||||||
|
reclaimPolicy = string(*obj.ReclaimPolicy)
|
||||||
|
}
|
||||||
|
|
||||||
|
volumeBindingMode := string(storage.VolumeBindingImmediate)
|
||||||
|
if obj.VolumeBindingMode != nil {
|
||||||
|
volumeBindingMode = string(*obj.VolumeBindingMode)
|
||||||
|
}
|
||||||
|
|
||||||
|
allowVolumeExpansion := false
|
||||||
|
if obj.AllowVolumeExpansion != nil {
|
||||||
|
allowVolumeExpansion = *obj.AllowVolumeExpansion
|
||||||
|
}
|
||||||
|
|
||||||
|
row.Cells = append(row.Cells, name, provtype, reclaimPolicy, volumeBindingMode, allowVolumeExpansion,
|
||||||
|
translateTimestampSince(obj.CreationTimestamp))
|
||||||
|
|
||||||
return []metav1beta1.TableRow{row}, nil
|
return []metav1beta1.TableRow{row}, nil
|
||||||
}
|
}
|
||||||
|
@ -4386,6 +4386,10 @@ func TestPrintCronJobList(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPrintStorageClass(t *testing.T) {
|
func TestPrintStorageClass(t *testing.T) {
|
||||||
|
policyDelte := api.PersistentVolumeReclaimDelete
|
||||||
|
policyRetain := api.PersistentVolumeReclaimRetain
|
||||||
|
bindModeImmediate := storage.VolumeBindingImmediate
|
||||||
|
bindModeWait := storage.VolumeBindingWaitForFirstConsumer
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
sc storage.StorageClass
|
sc storage.StorageClass
|
||||||
expected []metav1beta1.TableRow
|
expected []metav1beta1.TableRow
|
||||||
@ -4398,7 +4402,8 @@ func TestPrintStorageClass(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Provisioner: "kubernetes.io/glusterfs",
|
Provisioner: "kubernetes.io/glusterfs",
|
||||||
},
|
},
|
||||||
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc1", "kubernetes.io/glusterfs", "0s"}}},
|
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc1", "kubernetes.io/glusterfs", "Delete",
|
||||||
|
"Immediate", false, "0s"}}},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
sc: storage.StorageClass{
|
sc: storage.StorageClass{
|
||||||
@ -4408,7 +4413,60 @@ func TestPrintStorageClass(t *testing.T) {
|
|||||||
},
|
},
|
||||||
Provisioner: "kubernetes.io/nfs",
|
Provisioner: "kubernetes.io/nfs",
|
||||||
},
|
},
|
||||||
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc2", "kubernetes.io/nfs", "5m"}}},
|
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc2", "kubernetes.io/nfs", "Delete",
|
||||||
|
"Immediate", false, "5m"}}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sc: storage.StorageClass{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "sc3",
|
||||||
|
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
|
||||||
|
},
|
||||||
|
Provisioner: "kubernetes.io/nfs",
|
||||||
|
ReclaimPolicy: &policyDelte,
|
||||||
|
},
|
||||||
|
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc3", "kubernetes.io/nfs", "Delete",
|
||||||
|
"Immediate", false, "5m"}}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sc: storage.StorageClass{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "sc4",
|
||||||
|
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
|
||||||
|
},
|
||||||
|
Provisioner: "kubernetes.io/nfs",
|
||||||
|
ReclaimPolicy: &policyRetain,
|
||||||
|
VolumeBindingMode: &bindModeImmediate,
|
||||||
|
},
|
||||||
|
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc4", "kubernetes.io/nfs", "Retain",
|
||||||
|
"Immediate", false, "5m"}}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sc: storage.StorageClass{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "sc5",
|
||||||
|
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
|
||||||
|
},
|
||||||
|
Provisioner: "kubernetes.io/nfs",
|
||||||
|
ReclaimPolicy: &policyRetain,
|
||||||
|
VolumeBindingMode: &bindModeWait,
|
||||||
|
},
|
||||||
|
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc5", "kubernetes.io/nfs", "Retain",
|
||||||
|
"WaitForFirstConsumer", false, "5m"}}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
sc: storage.StorageClass{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "sc6",
|
||||||
|
CreationTimestamp: metav1.Time{Time: time.Now().Add(-3e11)},
|
||||||
|
},
|
||||||
|
Provisioner: "kubernetes.io/nfs",
|
||||||
|
ReclaimPolicy: &policyRetain,
|
||||||
|
AllowVolumeExpansion: boolP(true),
|
||||||
|
VolumeBindingMode: &bindModeWait,
|
||||||
|
},
|
||||||
|
expected: []metav1beta1.TableRow{{Cells: []interface{}{"sc6", "kubernetes.io/nfs", "Retain",
|
||||||
|
"WaitForFirstConsumer", true, "5m"}}},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user