@@ -27,6 +27,7 @@ import (
27
27
"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"
@@ -278,6 +279,7 @@ var errorItemNotSupported = errors.New("not supported")
278
279
var factories = map [What ]ItemFactory {
279
280
{"ClusterRole" }: & clusterRoleFactory {},
280
281
{"ClusterRoleBinding" }: & clusterRoleBindingFactory {},
282
+ {"CSIDriver" }: & csiDriverFactory {},
281
283
{"DaemonSet" }: & daemonSetFactory {},
282
284
{"Role" }: & roleFactory {},
283
285
{"RoleBinding" }: & roleBindingFactory {},
@@ -327,6 +329,8 @@ func (f *Framework) patchItemRecursively(item interface{}) error {
327
329
f .PatchName (& item .Name )
328
330
case * storagev1.StorageClass :
329
331
f .PatchName (& item .Name )
332
+ case * storagev1beta1.CSIDriver :
333
+ f .PatchName (& item .Name )
330
334
case * v1.ServiceAccount :
331
335
f .PatchNamespace (& item .ObjectMeta .Namespace )
332
336
case * v1.Secret :
@@ -557,6 +561,27 @@ func (*storageClassFactory) Create(f *Framework, i interface{}) (func() error, e
557
561
}, nil
558
562
}
559
563
564
+ type csiDriverFactory struct {}
565
+
566
+ func (f * csiDriverFactory ) New () runtime.Object {
567
+ return & storagev1beta1.CSIDriver {}
568
+ }
569
+
570
+ func (* csiDriverFactory ) Create (f * Framework , i interface {}) (func () error , error ) {
571
+ item , ok := i .(* storagev1beta1.CSIDriver )
572
+ if ! ok {
573
+ return nil , errorItemNotSupported
574
+ }
575
+
576
+ client := f .ClientSet .StorageV1beta1 ().CSIDrivers ()
577
+ if _ , err := client .Create (item ); err != nil {
578
+ return nil , errors .Wrap (err , "create CSIDriver" )
579
+ }
580
+ return func () error {
581
+ return client .Delete (item .GetName (), & metav1.DeleteOptions {})
582
+ }, nil
583
+ }
584
+
560
585
type secretFactory struct {}
561
586
562
587
func (f * secretFactory ) New () runtime.Object {
0 commit comments