diff --git a/pkg/registry/registrytest/BUILD b/pkg/registry/registrytest/BUILD index 162385eb48e..67bb351204b 100644 --- a/pkg/registry/registrytest/BUILD +++ b/pkg/registry/registrytest/BUILD @@ -21,15 +21,18 @@ go_library( deps = [ "//pkg/api/testapi:go_default_library", "//pkg/apis/core:go_default_library", + "//pkg/kubeapiserver:go_default_library", "//pkg/util/slice:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", "//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//staging/src/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", "//staging/src/k8s.io/apiserver/pkg/registry/rest:go_default_library", + "//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/etcd/testing:go_default_library", "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", ], diff --git a/pkg/registry/registrytest/etcd.go b/pkg/registry/registrytest/etcd.go index 061959d9d2a..85100105843 100644 --- a/pkg/registry/registrytest/etcd.go +++ b/pkg/registry/registrytest/etcd.go @@ -19,9 +19,12 @@ package registrytest import ( "testing" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apiserver/pkg/server/options" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/apiserver/pkg/storage/storagebackend" "k8s.io/kubernetes/pkg/api/testapi" + "k8s.io/kubernetes/pkg/kubeapiserver" ) func NewEtcdStorage(t *testing.T, group string) (*storagebackend.Config, *etcdtesting.EtcdTestServer) { @@ -29,3 +32,24 @@ func NewEtcdStorage(t *testing.T, group string) (*storagebackend.Config, *etcdte config.Codec = testapi.Groups[group].StorageCodec() return config, server } + +func NewEtcdStorageForResource(t *testing.T, resource schema.GroupResource) (*storagebackend.Config, *etcdtesting.EtcdTestServer) { + t.Helper() + + server, config := etcdtesting.NewUnsecuredEtcd3TestClientServer(t) + + options := options.NewEtcdOptions(config) + completedConfig, err := kubeapiserver.NewStorageFactoryConfig().Complete(options) + if err != nil { + t.Fatal(err) + } + factory, err := completedConfig.New() + if err != nil { + t.Fatal(err) + } + resourceConfig, err := factory.NewConfig(resource) + if err != nil { + t.Fatal(err) + } + return resourceConfig, server +} diff --git a/pkg/registry/storage/csidriver/storage/storage_test.go b/pkg/registry/storage/csidriver/storage/storage_test.go index 715b8063ca9..9ebc53f43e4 100644 --- a/pkg/registry/storage/csidriver/storage/storage_test.go +++ b/pkg/registry/storage/csidriver/storage/storage_test.go @@ -31,7 +31,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *etcdtesting.EtcdTestServer) { - etcdStorage, server := registrytest.NewEtcdStorage(t, storageapi.GroupName) + etcdStorage, server := registrytest.NewEtcdStorageForResource(t, storageapi.SchemeGroupVersion.WithResource("csidrivers").GroupResource()) restOptions := generic.RESTOptions{ StorageConfig: etcdStorage, Decorator: generic.UndecoratedStorage, diff --git a/pkg/registry/storage/csinode/storage/storage_test.go b/pkg/registry/storage/csinode/storage/storage_test.go index 0fe43a8b3db..362a38ff075 100644 --- a/pkg/registry/storage/csinode/storage/storage_test.go +++ b/pkg/registry/storage/csinode/storage/storage_test.go @@ -31,7 +31,7 @@ import ( ) func newStorage(t *testing.T) (*REST, *etcdtesting.EtcdTestServer) { - etcdStorage, server := registrytest.NewEtcdStorage(t, storageapi.GroupName) + etcdStorage, server := registrytest.NewEtcdStorageForResource(t, storageapi.SchemeGroupVersion.WithResource("csinodes").GroupResource()) restOptions := generic.RESTOptions{ StorageConfig: etcdStorage, Decorator: generic.UndecoratedStorage,