diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index 33576fdf7ae..ca4872113d6 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -429,7 +429,7 @@ func buildGenericConfig( genericConfig.Version = &kubeVersion storageFactoryConfig := kubeapiserver.NewStorageFactoryConfig() - storageFactoryConfig.ApiResourceConfig = genericConfig.MergedResourceConfig + storageFactoryConfig.APIResourceConfig = genericConfig.MergedResourceConfig completedStorageFactoryConfig, err := storageFactoryConfig.Complete(s.Etcd) if err != nil { lastErr = err diff --git a/pkg/kubeapiserver/default_storage_factory_builder.go b/pkg/kubeapiserver/default_storage_factory_builder.go index f05189d1c89..b9e7abc0a5b 100644 --- a/pkg/kubeapiserver/default_storage_factory_builder.go +++ b/pkg/kubeapiserver/default_storage_factory_builder.go @@ -49,6 +49,7 @@ var SpecialDefaultResourcePrefixes = map[schema.GroupResource]string{ {Group: "policy", Resource: "podsecuritypolicies"}: "podsecuritypolicy", } +// NewStorageFactoryConfig returns a new StorageFactoryConfig set up with necessary resource overrides. func NewStorageFactoryConfig() *StorageFactoryConfig { resources := []schema.GroupVersionResource{ @@ -66,9 +67,10 @@ func NewStorageFactoryConfig() *StorageFactoryConfig { } } +// StorageFactoryConfig is a configuration for creating storage factory. type StorageFactoryConfig struct { StorageConfig storagebackend.Config - ApiResourceConfig *serverstorage.ResourceConfig + APIResourceConfig *serverstorage.ResourceConfig DefaultResourceEncoding *serverstorage.DefaultResourceEncodingConfig DefaultStorageMediaType string Serializer runtime.StorageSerializer @@ -77,6 +79,7 @@ type StorageFactoryConfig struct { EncryptionProviderConfigFilepath string } +// Complete completes the StorageFactoryConfig with provided etcdOptions returning completedStorageFactoryConfig. func (c *StorageFactoryConfig) Complete(etcdOptions *serveroptions.EtcdOptions) (*completedStorageFactoryConfig, error) { c.StorageConfig = etcdOptions.StorageConfig c.DefaultStorageMediaType = etcdOptions.DefaultStorageMediaType @@ -85,10 +88,15 @@ func (c *StorageFactoryConfig) Complete(etcdOptions *serveroptions.EtcdOptions) return &completedStorageFactoryConfig{c}, nil } +// completedStorageFactoryConfig is a wrapper around StorageFactoryConfig completed with etcd options. +// +// Note: this struct is intentionally unexported so that it can only be constructed via a StorageFactoryConfig.Complete +// call. The implied consequence is that this does not comply with golint. type completedStorageFactoryConfig struct { *StorageFactoryConfig } +// New returns a new storage factory created from the completed storage factory configuration. func (c *completedStorageFactoryConfig) New() (*serverstorage.DefaultStorageFactory, error) { resourceEncodingConfig := resourceconfig.MergeResourceEncodingConfigs(c.DefaultResourceEncoding, c.ResourceEncodingOverrides) storageFactory := serverstorage.NewDefaultStorageFactory( @@ -96,7 +104,7 @@ func (c *completedStorageFactoryConfig) New() (*serverstorage.DefaultStorageFact c.DefaultStorageMediaType, c.Serializer, resourceEncodingConfig, - c.ApiResourceConfig, + c.APIResourceConfig, SpecialDefaultResourcePrefixes) storageFactory.AddCohabitatingResources(networking.Resource("networkpolicies"), extensions.Resource("networkpolicies")) diff --git a/pkg/kubeapiserver/doc.go b/pkg/kubeapiserver/doc.go index fefb1cc6ebe..85a35c13939 100644 --- a/pkg/kubeapiserver/doc.go +++ b/pkg/kubeapiserver/doc.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// The kubeapiserver package holds code that is common to both the kube-apiserver +// Package kubeapiserver holds code that is common to both the kube-apiserver // and the federation-apiserver, but isn't part of a generic API server. // For instance, the non-delegated authorization options are used by those two // servers, but no generic API server is likely to use them. diff --git a/pkg/registry/registrytest/etcd.go b/pkg/registry/registrytest/etcd.go index e1f88e82223..07be8cd6d4a 100644 --- a/pkg/registry/registrytest/etcd.go +++ b/pkg/registry/registrytest/etcd.go @@ -44,7 +44,7 @@ func NewEtcdStorageForResource(t *testing.T, resource schema.GroupResource) (*st if err != nil { t.Fatal(err) } - completedConfig.ApiResourceConfig = serverstorage.NewResourceConfig() + completedConfig.APIResourceConfig = serverstorage.NewResourceConfig() factory, err := completedConfig.New() if err != nil { t.Fatal(err) diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index dbc8a806598..0b8b71c4617 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -278,7 +278,7 @@ func NewMasterConfigWithOptions(opts *MasterConfigOptions) *master.Config { } storageConfig := kubeapiserver.NewStorageFactoryConfig() - storageConfig.ApiResourceConfig = serverstorage.NewResourceConfig() + storageConfig.APIResourceConfig = serverstorage.NewResourceConfig() completedStorageConfig, err := storageConfig.Complete(etcdOptions) if err != nil { panic(err)