Skip to content

Commit b4ac0bc

Browse files
committed
master: only one place for storage GVRs
1 parent 0bf8c01 commit b4ac0bc

File tree

3 files changed

+31
-32
lines changed

3 files changed

+31
-32
lines changed

pkg/cmd/server/kubernetes/master/master_config.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ func BuildKubeAPIserverOptions(masterConfig configapi.MasterConfig) (*kapiserver
173173

174174
// BuildStorageFactory builds a storage factory based on server.Etcd.StorageConfig with overrides from masterConfig.
175175
// This storage factory is used for kubernetes and origin registries. Compare pkg/util/restoptions/configgetter.go.
176-
func BuildStorageFactory(masterConfig configapi.MasterConfig, server *kapiserveroptions.ServerRunOptions, enforcedStorageVersions []schema.GroupVersionResource) (*apiserverstorage.DefaultStorageFactory, error) {
176+
func BuildStorageFactory(masterConfig configapi.MasterConfig, server *kapiserveroptions.ServerRunOptions, enforcedStorageVersions map[schema.GroupResource]schema.GroupVersion) (*apiserverstorage.DefaultStorageFactory, error) {
177177
resourceEncodingConfig := apiserverstorage.NewDefaultResourceEncodingConfig(kapi.Registry)
178178

179179
storageGroupsToEncodingVersion, err := server.StorageSerialization.StorageGroupsToEncodingVersion()
@@ -185,9 +185,8 @@ func BuildStorageFactory(masterConfig configapi.MasterConfig, server *kapiserver
185185
}
186186
resourceEncodingConfig.SetResourceEncoding(batch.Resource("cronjobs"), batchv2alpha1.SchemeGroupVersion, batch.SchemeGroupVersion)
187187

188-
// use legacy group name "" for all resources that existed when apigroups were introduced
189-
for _, gvr := range enforcedStorageVersions {
190-
resourceEncodingConfig.SetResourceEncoding(gvr.GroupResource(), schema.GroupVersion{Version: gvr.Version}, schema.GroupVersion{Version: runtime.APIVersionInternal})
188+
for gr, storageGV := range enforcedStorageVersions {
189+
resourceEncodingConfig.SetResourceEncoding(gr, storageGV, schema.GroupVersion{Group: storageGV.Group, Version: runtime.APIVersionInternal})
191190
}
192191

193192
storageFactory := apiserverstorage.NewDefaultStorageFactory(

pkg/cmd/server/origin/rest/storage_options.go

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -46,33 +46,33 @@ func StorageOptions(options configapi.MasterConfig) (restoptions.Getter, error)
4646
{Resource: "netnamespaces"}: "registry/sdnnetnamespaces",
4747
{Resource: "netnamespaces", Group: "network.openshift.io"}: "registry/sdnnetnamespaces",
4848
},
49-
// storage versions:
50-
[]schema.GroupVersionResource{
51-
{"authorization.openshift.io", "v1", "clusterpolicybindings"},
52-
{"authorization.openshift.io", "v1", "clusterpolicies"},
53-
{"authorization.openshift.io", "v1", "policybindings"},
54-
{"authorization.openshift.io", "v1", "rolebindingrestrictions"},
55-
{"authorization.openshift.io", "v1", "policies"},
56-
{"build.openshift.io", "v1", "builds"},
57-
{"build.openshift.io", "v1", "buildconfigs"},
58-
{"apps.openshift.io", "v1", "deploymentconfigs"},
59-
{"image.openshift.io", "v1", "imagestreams"},
60-
{"image.openshift.io", "v1", "images"},
61-
{"oauth.openshift.io", "v1", "oauthclientauthorizations"},
62-
{"oauth.openshift.io", "v1", "oauthaccesstokens"},
63-
{"oauth.openshift.io", "v1", "oauthauthorizetokens"},
64-
{"oauth.openshift.io", "v1", "oauthclients"},
65-
{"project.openshift.io", "v1", "projects"},
66-
{"quota.openshift.io", "v1", "clusterresourcequotas"},
67-
{"route.openshift.io", "v1", "routes"},
68-
{"network.openshift.io", "v1", "netnamespaces"},
69-
{"network.openshift.io", "v1", "hostsubnets"},
70-
{"network.openshift.io", "v1", "clusternetworks"},
71-
{"network.openshift.io", "v1", "egressnetworkpolicies"},
72-
{"template.openshift.io", "v1", "templates"},
73-
{"user.openshift.io", "v1", "groups"},
74-
{"user.openshift.io", "v1", "users"},
75-
{"user.openshift.io", "v1", "identities"},
49+
// storage versions: use legacy group name "" for all resources that existed when apigroups were introduced
50+
map[schema.GroupResource]schema.GroupVersion{
51+
{Group: "authorization.openshift.io", Resource: "clusterpolicybindings"}: {Group: "", Version: "v1"},
52+
{Group: "authorization.openshift.io", Resource: "clusterpolicies"}: {Group: "", Version: "v1"},
53+
{Group: "authorization.openshift.io", Resource: "policybindings"}: {Group: "", Version: "v1"},
54+
{Group: "authorization.openshift.io", Resource: "rolebindingrestrictions"}: {Group: "", Version: "v1"},
55+
{Group: "authorization.openshift.io", Resource: "policies"}: {Group: "", Version: "v1"},
56+
{Group: "build.openshift.io", Resource: "builds"}: {Group: "", Version: "v1"},
57+
{Group: "build.openshift.io", Resource: "buildconfigs"}: {Group: "", Version: "v1"},
58+
{Group: "apps.openshift.io", Resource: "deploymentconfigs"}: {Group: "", Version: "v1"},
59+
{Group: "image.openshift.io", Resource: "imagestreams"}: {Group: "", Version: "v1"},
60+
{Group: "image.openshift.io", Resource: "images"}: {Group: "", Version: "v1"},
61+
{Group: "oauth.openshift.io", Resource: "oauthclientauthorizations"}: {Group: "", Version: "v1"},
62+
{Group: "oauth.openshift.io", Resource: "oauthaccesstokens"}: {Group: "", Version: "v1"},
63+
{Group: "oauth.openshift.io", Resource: "oauthauthorizetokens"}: {Group: "", Version: "v1"},
64+
{Group: "oauth.openshift.io", Resource: "oauthclients"}: {Group: "", Version: "v1"},
65+
{Group: "project.openshift.io", Resource: "projects"}: {Group: "", Version: "v1"},
66+
{Group: "quota.openshift.io", Resource: "clusterresourcequotas"}: {Group: "", Version: "v1"},
67+
{Group: "route.openshift.io", Resource: "routes"}: {Group: "", Version: "v1"},
68+
{Group: "network.openshift.io", Resource: "netnamespaces"}: {Group: "", Version: "v1"},
69+
{Group: "network.openshift.io", Resource: "hostsubnets"}: {Group: "", Version: "v1"},
70+
{Group: "network.openshift.io", Resource: "clusternetworks"}: {Group: "", Version: "v1"},
71+
{Group: "network.openshift.io", Resource: "egressnetworkpolicies"}: {Group: "", Version: "v1"},
72+
{Group: "template.openshift.io", Resource: "templates"}: {Group: "", Version: "v1"},
73+
{Group: "user.openshift.io", Resource: "groups"}: {Group: "", Version: "v1"},
74+
{Group: "user.openshift.io", Resource: "users"}: {Group: "", Version: "v1"},
75+
{Group: "user.openshift.io", Resource: "identities"}: {Group: "", Version: "v1"},
7676
},
7777
// quorum resources:
7878
map[schema.GroupResource]struct{}{

pkg/util/restoptions/configgetter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type configRESTOptionsGetter struct {
4646
// NewConfigGetter returns a restoptions.Getter implemented using information from the provided master config.
4747
// By default, the etcd watch cache is enabled with a size of 1000 per resource type.
4848
// TODO: this class should either not need to know about configapi.MasterConfig, or not be in pkg/util
49-
func NewConfigGetter(masterOptions configapi.MasterConfig, defaultResourceConfig *serverstorage.ResourceConfig, resourcePrefixOverrides map[schema.GroupResource]string, enforcedStorageVersions []schema.GroupVersionResource, quorumResources map[schema.GroupResource]struct{}) (Getter, error) {
49+
func NewConfigGetter(masterOptions configapi.MasterConfig, defaultResourceConfig *serverstorage.ResourceConfig, resourcePrefixOverrides map[schema.GroupResource]string, enforcedStorageVersions map[schema.GroupResource]schema.GroupVersion, quorumResources map[schema.GroupResource]struct{}) (Getter, error) {
5050
apiserverOptions, err := kubernetes.BuildKubeAPIserverOptions(masterOptions)
5151
if err != nil {
5252
return nil, err

0 commit comments

Comments
 (0)