From f10f4d372c13ddddbccbe01022b3730ee68d1b88 Mon Sep 17 00:00:00 2001 From: danishprakash Date: Thu, 4 Aug 2022 09:37:27 +0530 Subject: [PATCH] pv_controller: update tests for multiple storageclasses Signed-off-by: danishprakash --- .../persistentvolume/pv_controller_test.go | 34 +++++++++---------- pkg/volume/util/storageclass.go | 2 ++ .../storageclass/setdefault/admission.go | 1 - 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/pkg/controller/volume/persistentvolume/pv_controller_test.go b/pkg/controller/volume/persistentvolume/pv_controller_test.go index 7d11120d023..a40921a51ba 100644 --- a/pkg/controller/volume/persistentvolume/pv_controller_test.go +++ b/pkg/controller/volume/persistentvolume/pv_controller_test.go @@ -773,23 +773,6 @@ func TestRetroactiveStorageClassAssignment(t *testing.T) { }, }, }, - { - storageClasses: []*storagev1.StorageClass{ - makeDefaultStorageClass(classGold, &modeImmediate), - makeDefaultStorageClass(classSilver, &modeImmediate)}, - tests: []controllerTest{ - { - name: "15-2 - pvc storage class is not assigned retroactively if there are multiple default storage classes", - initialVolumes: novolumes, - expectedVolumes: novolumes, - initialClaims: newClaimArray("claim15-2", "uid15-2", "1Gi", "", v1.ClaimPending, nil), - expectedClaims: newClaimArray("claim15-2", "uid15-2", "1Gi", "", v1.ClaimPending, nil), - expectedEvents: noevents, - errors: noerrors, - test: testSyncClaim, - }, - }, - }, { storageClasses: []*storagev1.StorageClass{ makeDefaultStorageClass(classGold, &modeImmediate), @@ -844,6 +827,23 @@ func TestRetroactiveStorageClassAssignment(t *testing.T) { }, }, }, + { + storageClasses: []*storagev1.StorageClass{ + makeDefaultStorageClass(classGold, &modeImmediate), + makeDefaultStorageClass(classSilver, &modeImmediate)}, + tests: []controllerTest{ + { + name: "15-2 - pvc storage class is assigned retroactively if there are multiple default storage classes", + initialVolumes: novolumes, + expectedVolumes: novolumes, + initialClaims: newClaimArray("claim15-2", "uid15-2", "1Gi", "", v1.ClaimPending, nil), + expectedClaims: newClaimArray("claim15-2", "uid15-2", "1Gi", "", v1.ClaimPending, &classGold), + expectedEvents: noevents, + errors: noerrors, + test: testSyncClaim, + }, + }, + }, { storageClasses: []*storagev1.StorageClass{ makeDefaultStorageClass(classGold, &modeImmediate), diff --git a/pkg/volume/util/storageclass.go b/pkg/volume/util/storageclass.go index fd1e9c4fddf..d2098c25800 100644 --- a/pkg/volume/util/storageclass.go +++ b/pkg/volume/util/storageclass.go @@ -55,6 +55,8 @@ func GetDefaultClass(lister storagev1listers.StorageClassLister) (*storagev1.Sto return nil, nil } + // Primary sort by creation timestamp, newest first + // Secondary sort by class name, ascending order sort.Slice(defaultClasses, func(i, j int) bool { if defaultClasses[i].CreationTimestamp.UnixNano() == defaultClasses[j].CreationTimestamp.UnixNano() { return defaultClasses[i].Name < defaultClasses[j].Name diff --git a/plugin/pkg/admission/storage/storageclass/setdefault/admission.go b/plugin/pkg/admission/storage/storageclass/setdefault/admission.go index 4772996a1a7..aa4c1c14ba7 100644 --- a/plugin/pkg/admission/storage/storageclass/setdefault/admission.go +++ b/plugin/pkg/admission/storage/storageclass/setdefault/admission.go @@ -20,7 +20,6 @@ import ( "context" "fmt" "io" - "k8s.io/kubernetes/pkg/volume/util" "k8s.io/klog/v2"