Fix statefulsets volumeClaimTemplates storageClassName after use Changing PV/PVC Storage Classes (#4375)

* fix statefulsets volumeClaimTemplates storageClassName after use Changing PV/PVC Storage Classes

Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com>

* Fix (vmware-tanzu#4373)

Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com>

* Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373)

Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com>

* Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373)

Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com>

* Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373)

Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com>

* Change the isStorageClassExist logic

Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com>

* Fix StatefulSet volumeClaimTemplates storageClassName(vmware-tanzu#4373)

Signed-off-by: Box-Cube <64300761+Box-Cube@users.noreply.github.com>
This commit is contained in:
Box-Cube
2021-12-16 14:50:56 +08:00
committed by GitHub
parent e350ce5bb4
commit 69f6c8d0cd
5 changed files with 258 additions and 45 deletions

View File

@@ -23,7 +23,8 @@ import (
// StorageClassBuilder builds StorageClass objects.
type StorageClassBuilder struct {
object *storagev1api.StorageClass
object *storagev1api.StorageClass
objectSlice []*storagev1api.StorageClass
}
// ForStorageClass is the constructor for a StorageClassBuilder.
@@ -54,3 +55,29 @@ func (b *StorageClassBuilder) ObjectMeta(opts ...ObjectMetaOpt) *StorageClassBui
return b
}
// ForStorageClassSlice is the constructor for a storageClassSlice in StorageClassBuilder.
func ForStorageClassSlice(names ...string) *StorageClassBuilder {
var storageClassSlice []*storagev1api.StorageClass
for _, name := range names {
storageClass := &storagev1api.StorageClass{
TypeMeta: metav1.TypeMeta{
APIVersion: storagev1api.SchemeGroupVersion.String(),
Kind: "StorageClass",
},
ObjectMeta: metav1.ObjectMeta{
Name: name,
},
}
storageClassSlice = append(storageClassSlice, storageClass)
}
return &StorageClassBuilder{
objectSlice: storageClassSlice,
}
}
// SliceResult returns the built StorageClass slice.
func (b *StorageClassBuilder) SliceResult() []*storagev1api.StorageClass {
return b.objectSlice
}