@@ -27,6 +27,7 @@ import (
27
27
v1 "k8s.io/api/core/v1"
28
28
rbacv1 "k8s.io/api/rbac/v1"
29
29
storagev1 "k8s.io/api/storage/v1"
30
+ storagev1beta1 "k8s.io/api/storage/v1beta1"
30
31
apierrs "k8s.io/apimachinery/pkg/api/errors"
31
32
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
32
33
"k8s.io/apimachinery/pkg/runtime"
@@ -279,6 +280,7 @@ var errorItemNotSupported = errors.New("not supported")
279
280
var factories = map [What ]ItemFactory {
280
281
{"ClusterRole" }: & clusterRoleFactory {},
281
282
{"ClusterRoleBinding" }: & clusterRoleBindingFactory {},
283
+ {"CSIDriver" }: & csiDriverFactory {},
282
284
{"DaemonSet" }: & daemonSetFactory {},
283
285
{"Role" }: & roleFactory {},
284
286
{"RoleBinding" }: & roleBindingFactory {},
@@ -328,6 +330,8 @@ func (f *Framework) patchItemRecursively(item interface{}) error {
328
330
f .PatchName (& item .Name )
329
331
case * storagev1.StorageClass :
330
332
f .PatchName (& item .Name )
333
+ case * storagev1beta1.CSIDriver :
334
+ f .PatchName (& item .Name )
331
335
case * v1.ServiceAccount :
332
336
f .PatchNamespace (& item .ObjectMeta .Namespace )
333
337
case * v1.Secret :
@@ -570,6 +574,27 @@ func (*storageClassFactory) Create(f *Framework, i interface{}) (func() error, e
570
574
}, nil
571
575
}
572
576
577
+ type csiDriverFactory struct {}
578
+
579
+ func (f * csiDriverFactory ) New () runtime.Object {
580
+ return & storagev1beta1.CSIDriver {}
581
+ }
582
+
583
+ func (* csiDriverFactory ) Create (f * Framework , i interface {}) (func () error , error ) {
584
+ item , ok := i .(* storagev1beta1.CSIDriver )
585
+ if ! ok {
586
+ return nil , errorItemNotSupported
587
+ }
588
+
589
+ client := f .ClientSet .StorageV1beta1 ().CSIDrivers ()
590
+ if _ , err := client .Create (item ); err != nil {
591
+ return nil , errors .Wrap (err , "create CSIDriver" )
592
+ }
593
+ return func () error {
594
+ return client .Delete (item .GetName (), & metav1.DeleteOptions {})
595
+ }, nil
596
+ }
597
+
573
598
type secretFactory struct {}
574
599
575
600
func (f * secretFactory ) New () runtime.Object {
0 commit comments