Add CSIDriver creation factory to e2e framework

This commit is contained in:
Matthew Wong 2019-07-19 19:54:35 +00:00 committed by Matthew Wong
parent 13af8f286d
commit 5060704a76
2 changed files with 26 additions and 0 deletions

View File

@ -57,6 +57,7 @@ go_library(
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
"//staging/src/k8s.io/api/rbac/v1:go_default_library",
"//staging/src/k8s.io/api/storage/v1:go_default_library",
"//staging/src/k8s.io/api/storage/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",

View File

@ -27,6 +27,7 @@ import (
"k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
storagev1 "k8s.io/api/storage/v1"
storagev1beta1 "k8s.io/api/storage/v1beta1"
apierrs "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@ -278,6 +279,7 @@ var errorItemNotSupported = errors.New("not supported")
var factories = map[What]ItemFactory{
{"ClusterRole"}: &clusterRoleFactory{},
{"ClusterRoleBinding"}: &clusterRoleBindingFactory{},
{"CSIDriver"}: &csiDriverFactory{},
{"DaemonSet"}: &daemonSetFactory{},
{"Role"}: &roleFactory{},
{"RoleBinding"}: &roleBindingFactory{},
@ -327,6 +329,8 @@ func (f *Framework) patchItemRecursively(item interface{}) error {
f.PatchName(&item.Name)
case *storagev1.StorageClass:
f.PatchName(&item.Name)
case *storagev1beta1.CSIDriver:
f.PatchName(&item.Name)
case *v1.ServiceAccount:
f.PatchNamespace(&item.ObjectMeta.Namespace)
case *v1.Secret:
@ -557,6 +561,27 @@ func (*storageClassFactory) Create(f *Framework, i interface{}) (func() error, e
}, nil
}
type csiDriverFactory struct{}
func (f *csiDriverFactory) New() runtime.Object {
return &storagev1beta1.CSIDriver{}
}
func (*csiDriverFactory) Create(f *Framework, i interface{}) (func() error, error) {
item, ok := i.(*storagev1beta1.CSIDriver)
if !ok {
return nil, errorItemNotSupported
}
client := f.ClientSet.StorageV1beta1().CSIDrivers()
if _, err := client.Create(item); err != nil {
return nil, errors.Wrap(err, "create CSIDriver")
}
return func() error {
return client.Delete(item.GetName(), &metav1.DeleteOptions{})
}, nil
}
type secretFactory struct{}
func (f *secretFactory) New() runtime.Object {