From 3e7d6067da4c7a31d1193aca82ec99d6412a5b08 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 24 Feb 2017 13:34:19 +0100 Subject: [PATCH] Install storage v1 API --- pkg/master/BUILD | 1 + pkg/master/master.go | 2 ++ pkg/registry/storage/rest/BUILD | 1 + pkg/registry/storage/rest/storage_storage.go | 18 ++++++++++++++++++ 4 files changed, 22 insertions(+) diff --git a/pkg/master/BUILD b/pkg/master/BUILD index ecc134ffca1..21e193704b2 100644 --- a/pkg/master/BUILD +++ b/pkg/master/BUILD @@ -48,6 +48,7 @@ go_library( "//pkg/apis/rbac/v1alpha1:go_default_library", "//pkg/apis/rbac/v1beta1:go_default_library", "//pkg/apis/storage/install:go_default_library", + "//pkg/apis/storage/v1:go_default_library", "//pkg/apis/storage/v1beta1:go_default_library", "//pkg/client/clientset_generated/clientset/typed/core/v1:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", diff --git a/pkg/master/master.go b/pkg/master/master.go index d7a82eb10e2..862d1067d7c 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -45,6 +45,7 @@ import ( policyapiv1beta1 "k8s.io/kubernetes/pkg/apis/policy/v1beta1" rbacapi "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1" rbacv1beta1 "k8s.io/kubernetes/pkg/apis/rbac/v1beta1" + storageapiv1 "k8s.io/kubernetes/pkg/apis/storage/v1" storageapiv1beta1 "k8s.io/kubernetes/pkg/apis/storage/v1beta1" corev1client "k8s.io/kubernetes/pkg/client/clientset_generated/clientset/typed/core/v1" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" @@ -363,6 +364,7 @@ func DefaultAPIResourceConfigSource() *serverstorage.ResourceConfig { policyapiv1beta1.SchemeGroupVersion, rbacv1beta1.SchemeGroupVersion, rbacapi.SchemeGroupVersion, + storageapiv1.SchemeGroupVersion, storageapiv1beta1.SchemeGroupVersion, certificatesapiv1beta1.SchemeGroupVersion, authorizationapiv1.SchemeGroupVersion, diff --git a/pkg/registry/storage/rest/BUILD b/pkg/registry/storage/rest/BUILD index d5fc84b07f6..755011c35b1 100644 --- a/pkg/registry/storage/rest/BUILD +++ b/pkg/registry/storage/rest/BUILD @@ -14,6 +14,7 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/apis/storage:go_default_library", + "//pkg/apis/storage/v1:go_default_library", "//pkg/apis/storage/v1beta1:go_default_library", "//pkg/registry/storage/storageclass/storage:go_default_library", "//vendor:k8s.io/apiserver/pkg/registry/generic", diff --git a/pkg/registry/storage/rest/storage_storage.go b/pkg/registry/storage/rest/storage_storage.go index 31239b00213..c12f8038243 100644 --- a/pkg/registry/storage/rest/storage_storage.go +++ b/pkg/registry/storage/rest/storage_storage.go @@ -23,6 +23,7 @@ import ( serverstorage "k8s.io/apiserver/pkg/server/storage" "k8s.io/kubernetes/pkg/api" storageapi "k8s.io/kubernetes/pkg/apis/storage" + storageapiv1 "k8s.io/kubernetes/pkg/apis/storage/v1" storageapiv1beta1 "k8s.io/kubernetes/pkg/apis/storage/v1beta1" storageclassstore "k8s.io/kubernetes/pkg/registry/storage/storageclass/storage" ) @@ -37,6 +38,10 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorag apiGroupInfo.VersionedResourcesStorageMap[storageapiv1beta1.SchemeGroupVersion.Version] = p.v1beta1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.GroupMeta.GroupVersion = storageapiv1beta1.SchemeGroupVersion } + if apiResourceConfigSource.AnyResourcesForVersionEnabled(storageapiv1.SchemeGroupVersion) { + apiGroupInfo.VersionedResourcesStorageMap[storageapiv1.SchemeGroupVersion.Version] = p.v1Storage(apiResourceConfigSource, restOptionsGetter) + apiGroupInfo.GroupMeta.GroupVersion = storageapiv1.SchemeGroupVersion + } return apiGroupInfo, true } @@ -54,6 +59,19 @@ func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource serverstorag return storage } +func (p RESTStorageProvider) v1Storage(apiResourceConfigSource serverstorage.APIResourceConfigSource, restOptionsGetter generic.RESTOptionsGetter) map[string]rest.Storage { + version := storageapiv1.SchemeGroupVersion + + storage := map[string]rest.Storage{} + + if apiResourceConfigSource.ResourceEnabled(version.WithResource("storageclasses")) { + storageClassStorage := storageclassstore.NewREST(restOptionsGetter) + storage["storageclasses"] = storageClassStorage + } + + return storage +} + func (p RESTStorageProvider) GroupName() string { return storageapi.GroupName }