From b410b387ee6587a69df8e903658c54595b606f1e Mon Sep 17 00:00:00 2001 From: deads2k Date: Tue, 7 Feb 2017 13:34:02 -0500 Subject: [PATCH] move storage serialization type to etcd options --- cmd/kube-apiserver/app/options/options.go | 2 +- cmd/kube-apiserver/app/server.go | 2 +- .../cmd/federation-apiserver/app/options/options.go | 2 +- federation/cmd/federation-apiserver/app/server.go | 2 +- .../src/k8s.io/apiserver/pkg/server/options/etcd.go | 9 +++++++++ .../apiserver/pkg/server/options/server_run_options.go | 10 +--------- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/cmd/kube-apiserver/app/options/options.go b/cmd/kube-apiserver/app/options/options.go index ec6765e6eb..1f79e7f616 100644 --- a/cmd/kube-apiserver/app/options/options.go +++ b/cmd/kube-apiserver/app/options/options.go @@ -94,7 +94,7 @@ func NewServerRunOptions() *ServerRunOptions { ServiceNodePortRange: DefaultServiceNodePortRange, } // Overwrite the default for storage data format. - s.GenericServerRunOptions.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf" + s.Etcd.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf" return &s } diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index f22191c86a..764b5d375c 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -205,7 +205,7 @@ func Run(s *options.ServerRunOptions) error { return fmt.Errorf("error generating storage version map: %s", err) } storageFactory, err := kubeapiserver.BuildDefaultStorageFactory( - s.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, + s.Etcd.StorageConfig, s.Etcd.DefaultStorageMediaType, api.Codecs, genericapiserver.NewDefaultResourceEncodingConfig(api.Registry), storageGroupsToEncodingVersion, // FIXME: this GroupVersionResource override should be configurable []schema.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v2alpha1")}, diff --git a/federation/cmd/federation-apiserver/app/options/options.go b/federation/cmd/federation-apiserver/app/options/options.go index 4c734f5051..81199ec562 100644 --- a/federation/cmd/federation-apiserver/app/options/options.go +++ b/federation/cmd/federation-apiserver/app/options/options.go @@ -63,7 +63,7 @@ func NewServerRunOptions() *ServerRunOptions { EventTTL: 1 * time.Hour, } // Overwrite the default for storage data format. - s.GenericServerRunOptions.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf" + s.Etcd.DefaultStorageMediaType = "application/vnd.kubernetes.protobuf" return &s } diff --git a/federation/cmd/federation-apiserver/app/server.go b/federation/cmd/federation-apiserver/app/server.go index d6efd5548c..a377552718 100644 --- a/federation/cmd/federation-apiserver/app/server.go +++ b/federation/cmd/federation-apiserver/app/server.go @@ -122,7 +122,7 @@ func Run(s *options.ServerRunOptions) error { return fmt.Errorf("error generating storage version map: %s", err) } storageFactory, err := kubeapiserver.BuildDefaultStorageFactory( - s.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, + s.Etcd.StorageConfig, s.Etcd.DefaultStorageMediaType, api.Codecs, genericapiserver.NewDefaultResourceEncodingConfig(api.Registry), storageGroupsToEncodingVersion, []schema.GroupVersionResource{}, resourceConfig, s.GenericServerRunOptions.RuntimeConfig) if err != nil { diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go b/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go index ae885eeda2..3a612aed1a 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/etcd.go @@ -33,6 +33,10 @@ type EtcdOptions struct { StorageConfig storagebackend.Config EtcdServersOverrides []string + + // To enable protobuf as storage format, it is enough + // to set it to "application/vnd.kubernetes.protobuf". + DefaultStorageMediaType string } func NewEtcdOptions(scheme *runtime.Scheme) *EtcdOptions { @@ -44,6 +48,7 @@ func NewEtcdOptions(scheme *runtime.Scheme) *EtcdOptions { DeserializationCacheSize: 0, Copier: scheme, }, + DefaultStorageMediaType: "application/json", } } @@ -62,6 +67,10 @@ func (s *EtcdOptions) AddFlags(fs *pflag.FlagSet) { "Per-resource etcd servers overrides, comma separated. The individual override "+ "format: group/resource#servers, where servers are http://ip:port, semicolon separated.") + fs.StringVar(&s.DefaultStorageMediaType, "storage-media-type", s.DefaultStorageMediaType, ""+ + "The media type to use to store objects in storage. Defaults to application/json. "+ + "Some resources may only support a specific media type and will ignore this setting.") + fs.StringVar(&s.StorageConfig.Type, "storage-backend", s.StorageConfig.Type, "The storage backend for persistence. Options: 'etcd3' (default), 'etcd2'.") diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options.go b/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options.go index eed8b4695d..76c5a6c5db 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/server_run_options.go @@ -39,10 +39,7 @@ type ServerRunOptions struct { AdmissionControlConfigFile string AdvertiseAddress net.IP - CorsAllowedOriginList []string - // To enable protobuf as storage format, it is enough - // to set it to "application/vnd.kubernetes.protobuf". - DefaultStorageMediaType string + CorsAllowedOriginList []string DeleteCollectionWorkers int EnableWatchCache bool ExternalHost string @@ -59,7 +56,6 @@ func NewServerRunOptions() *ServerRunOptions { return &ServerRunOptions{ AdmissionControl: "AlwaysAdmit", - DefaultStorageMediaType: "application/json", DeleteCollectionWorkers: 1, EnableWatchCache: true, MaxRequestsInFlight: defaults.MaxRequestsInFlight, @@ -131,10 +127,6 @@ func (s *ServerRunOptions) AddUniversalFlags(fs *pflag.FlagSet) { "List of allowed origins for CORS, comma separated. An allowed origin can be a regular "+ "expression to support subdomain matching. If this list is empty CORS will not be enabled.") - fs.StringVar(&s.DefaultStorageMediaType, "storage-media-type", s.DefaultStorageMediaType, ""+ - "The media type to use to store objects in storage. Defaults to application/json. "+ - "Some resources may only support a specific media type and will ignore this setting.") - fs.IntVar(&s.DeleteCollectionWorkers, "delete-collection-workers", s.DeleteCollectionWorkers, "Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup.")