mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +00:00 
			
		
		
		
	split generic etcdoption out of main struct
This commit is contained in:
		| @@ -36,7 +36,6 @@ go_library( | |||||||
|         "//pkg/generated/openapi:go_default_library", |         "//pkg/generated/openapi:go_default_library", | ||||||
|         "//pkg/genericapiserver:go_default_library", |         "//pkg/genericapiserver:go_default_library", | ||||||
|         "//pkg/genericapiserver/authorizer:go_default_library", |         "//pkg/genericapiserver/authorizer:go_default_library", | ||||||
|         "//pkg/genericapiserver/validation:go_default_library", |  | ||||||
|         "//pkg/master:go_default_library", |         "//pkg/master:go_default_library", | ||||||
|         "//pkg/registry/cachesize:go_default_library", |         "//pkg/registry/cachesize:go_default_library", | ||||||
|         "//pkg/runtime/schema:go_default_library", |         "//pkg/runtime/schema:go_default_library", | ||||||
|   | |||||||
| @@ -70,7 +70,7 @@ func (s *ServerRunOptions) AddFlags(fs *pflag.FlagSet) { | |||||||
| 	// Add the generic flags. | 	// Add the generic flags. | ||||||
| 	s.GenericServerRunOptions.AddUniversalFlags(fs) | 	s.GenericServerRunOptions.AddUniversalFlags(fs) | ||||||
| 	//Add etcd specific flags. | 	//Add etcd specific flags. | ||||||
| 	s.GenericServerRunOptions.AddEtcdStorageFlags(fs) | 	s.GenericServerRunOptions.Etcd.AddEtcdStorageFlags(fs) | ||||||
| 	// Note: the weird ""+ in below lines seems to be the only way to get gofmt to | 	// Note: the weird ""+ in below lines seems to be the only way to get gofmt to | ||||||
| 	// arrange these text blocks sensibly. Grrr. | 	// arrange these text blocks sensibly. Grrr. | ||||||
|  |  | ||||||
|   | |||||||
| @@ -50,11 +50,11 @@ import ( | |||||||
| 	generatedopenapi "k8s.io/kubernetes/pkg/generated/openapi" | 	generatedopenapi "k8s.io/kubernetes/pkg/generated/openapi" | ||||||
| 	"k8s.io/kubernetes/pkg/genericapiserver" | 	"k8s.io/kubernetes/pkg/genericapiserver" | ||||||
| 	"k8s.io/kubernetes/pkg/genericapiserver/authorizer" | 	"k8s.io/kubernetes/pkg/genericapiserver/authorizer" | ||||||
| 	genericvalidation "k8s.io/kubernetes/pkg/genericapiserver/validation" |  | ||||||
| 	"k8s.io/kubernetes/pkg/master" | 	"k8s.io/kubernetes/pkg/master" | ||||||
| 	"k8s.io/kubernetes/pkg/registry/cachesize" | 	"k8s.io/kubernetes/pkg/registry/cachesize" | ||||||
| 	"k8s.io/kubernetes/pkg/runtime/schema" | 	"k8s.io/kubernetes/pkg/runtime/schema" | ||||||
| 	"k8s.io/kubernetes/pkg/serviceaccount" | 	"k8s.io/kubernetes/pkg/serviceaccount" | ||||||
|  | 	utilerrors "k8s.io/kubernetes/pkg/util/errors" | ||||||
| 	utilnet "k8s.io/kubernetes/pkg/util/net" | 	utilnet "k8s.io/kubernetes/pkg/util/net" | ||||||
| 	"k8s.io/kubernetes/pkg/util/wait" | 	"k8s.io/kubernetes/pkg/util/wait" | ||||||
| 	"k8s.io/kubernetes/pkg/version" | 	"k8s.io/kubernetes/pkg/version" | ||||||
| @@ -80,7 +80,9 @@ cluster's shared state through which all other components interact.`, | |||||||
|  |  | ||||||
| // Run runs the specified APIServer.  This should never exit. | // Run runs the specified APIServer.  This should never exit. | ||||||
| func Run(s *options.ServerRunOptions) error { | func Run(s *options.ServerRunOptions) error { | ||||||
| 	genericvalidation.VerifyEtcdServersList(s.GenericServerRunOptions) | 	if errs := s.GenericServerRunOptions.Etcd.Validate(); len(errs) > 0 { | ||||||
|  | 		return utilerrors.NewAggregate(errs) | ||||||
|  | 	} | ||||||
| 	genericapiserver.DefaultAndValidateRunOptions(s.GenericServerRunOptions) | 	genericapiserver.DefaultAndValidateRunOptions(s.GenericServerRunOptions) | ||||||
| 	genericConfig := genericapiserver.NewConfig(). // create the new config | 	genericConfig := genericapiserver.NewConfig(). // create the new config | ||||||
| 							ApplyOptions(s.GenericServerRunOptions). // apply the options selected | 							ApplyOptions(s.GenericServerRunOptions). // apply the options selected | ||||||
| @@ -142,7 +144,7 @@ func Run(s *options.ServerRunOptions) error { | |||||||
| 	// Proxying to pods and services is IP-based... don't expect to be able to verify the hostname | 	// Proxying to pods and services is IP-based... don't expect to be able to verify the hostname | ||||||
| 	proxyTLSClientConfig := &tls.Config{InsecureSkipVerify: true} | 	proxyTLSClientConfig := &tls.Config{InsecureSkipVerify: true} | ||||||
|  |  | ||||||
| 	if s.GenericServerRunOptions.StorageConfig.DeserializationCacheSize == 0 { | 	if s.GenericServerRunOptions.Etcd.StorageConfig.DeserializationCacheSize == 0 { | ||||||
| 		// When size of cache is not explicitly set, estimate its size based on | 		// When size of cache is not explicitly set, estimate its size based on | ||||||
| 		// target memory usage. | 		// target memory usage. | ||||||
| 		glog.V(2).Infof("Initalizing deserialization cache size based on %dMB limit", s.GenericServerRunOptions.TargetRAMMB) | 		glog.V(2).Infof("Initalizing deserialization cache size based on %dMB limit", s.GenericServerRunOptions.TargetRAMMB) | ||||||
| @@ -158,9 +160,9 @@ func Run(s *options.ServerRunOptions) error { | |||||||
| 		// size to compute its size. We may even go further and measure | 		// size to compute its size. We may even go further and measure | ||||||
| 		// collective sizes of the objects in the cache. | 		// collective sizes of the objects in the cache. | ||||||
| 		clusterSize := s.GenericServerRunOptions.TargetRAMMB / 60 | 		clusterSize := s.GenericServerRunOptions.TargetRAMMB / 60 | ||||||
| 		s.GenericServerRunOptions.StorageConfig.DeserializationCacheSize = 25 * clusterSize | 		s.GenericServerRunOptions.Etcd.StorageConfig.DeserializationCacheSize = 25 * clusterSize | ||||||
| 		if s.GenericServerRunOptions.StorageConfig.DeserializationCacheSize < 1000 { | 		if s.GenericServerRunOptions.Etcd.StorageConfig.DeserializationCacheSize < 1000 { | ||||||
| 			s.GenericServerRunOptions.StorageConfig.DeserializationCacheSize = 1000 | 			s.GenericServerRunOptions.Etcd.StorageConfig.DeserializationCacheSize = 1000 | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -169,7 +171,7 @@ func Run(s *options.ServerRunOptions) error { | |||||||
| 		glog.Fatalf("error generating storage version map: %s", err) | 		glog.Fatalf("error generating storage version map: %s", err) | ||||||
| 	} | 	} | ||||||
| 	storageFactory, err := genericapiserver.BuildDefaultStorageFactory( | 	storageFactory, err := genericapiserver.BuildDefaultStorageFactory( | ||||||
| 		s.GenericServerRunOptions.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, | 		s.GenericServerRunOptions.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, | ||||||
| 		genericapiserver.NewDefaultResourceEncodingConfig(), storageGroupsToEncodingVersion, | 		genericapiserver.NewDefaultResourceEncodingConfig(), storageGroupsToEncodingVersion, | ||||||
| 		// FIXME: this GroupVersionResource override should be configurable | 		// FIXME: this GroupVersionResource override should be configurable | ||||||
| 		[]schema.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v2alpha1")}, | 		[]schema.GroupVersionResource{batch.Resource("cronjobs").WithVersion("v2alpha1")}, | ||||||
| @@ -179,7 +181,7 @@ func Run(s *options.ServerRunOptions) error { | |||||||
| 	} | 	} | ||||||
| 	storageFactory.AddCohabitatingResources(batch.Resource("jobs"), extensions.Resource("jobs")) | 	storageFactory.AddCohabitatingResources(batch.Resource("jobs"), extensions.Resource("jobs")) | ||||||
| 	storageFactory.AddCohabitatingResources(autoscaling.Resource("horizontalpodautoscalers"), extensions.Resource("horizontalpodautoscalers")) | 	storageFactory.AddCohabitatingResources(autoscaling.Resource("horizontalpodautoscalers"), extensions.Resource("horizontalpodautoscalers")) | ||||||
| 	for _, override := range s.GenericServerRunOptions.EtcdServersOverrides { | 	for _, override := range s.GenericServerRunOptions.Etcd.EtcdServersOverrides { | ||||||
| 		tokens := strings.Split(override, "#") | 		tokens := strings.Split(override, "#") | ||||||
| 		if len(tokens) != 2 { | 		if len(tokens) != 2 { | ||||||
| 			glog.Errorf("invalid value of etcd server overrides: %s", override) | 			glog.Errorf("invalid value of etcd server overrides: %s", override) | ||||||
|   | |||||||
| @@ -32,6 +32,7 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/registry/generic" | 	"k8s.io/kubernetes/pkg/registry/generic" | ||||||
| 	"k8s.io/kubernetes/pkg/runtime/schema" | 	"k8s.io/kubernetes/pkg/runtime/schema" | ||||||
| 	"k8s.io/kubernetes/pkg/storage/storagebackend" | 	"k8s.io/kubernetes/pkg/storage/storagebackend" | ||||||
|  | 	utilerrors "k8s.io/kubernetes/pkg/util/errors" | ||||||
|  |  | ||||||
| 	// Install the testgroup API | 	// Install the testgroup API | ||||||
| 	_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup/install" | 	_ "k8s.io/kubernetes/cmd/libs/go2idl/client-gen/test_apis/testgroup/install" | ||||||
| @@ -64,9 +65,11 @@ func Run(serverOptions *genericoptions.ServerRunOptions, stopCh <-chan struct{}) | |||||||
| 	// Set ServiceClusterIPRange | 	// Set ServiceClusterIPRange | ||||||
| 	_, serviceClusterIPRange, _ := net.ParseCIDR("10.0.0.0/24") | 	_, serviceClusterIPRange, _ := net.ParseCIDR("10.0.0.0/24") | ||||||
| 	serverOptions.ServiceClusterIPRange = *serviceClusterIPRange | 	serverOptions.ServiceClusterIPRange = *serviceClusterIPRange | ||||||
| 	serverOptions.StorageConfig.ServerList = []string{"http://127.0.0.1:2379"} | 	serverOptions.Etcd.StorageConfig.ServerList = []string{"http://127.0.0.1:2379"} | ||||||
| 	genericvalidation.ValidateRunOptions(serverOptions) | 	genericvalidation.ValidateRunOptions(serverOptions) | ||||||
| 	genericvalidation.VerifyEtcdServersList(serverOptions) | 	if errs := serverOptions.Etcd.Validate(); len(errs) > 0 { | ||||||
|  | 		return utilerrors.NewAggregate(errs) | ||||||
|  | 	} | ||||||
| 	config := genericapiserver.NewConfig().ApplyOptions(serverOptions).Complete() | 	config := genericapiserver.NewConfig().ApplyOptions(serverOptions).Complete() | ||||||
| 	if err := config.MaybeGenerateServingCerts(); err != nil { | 	if err := config.MaybeGenerateServingCerts(); err != nil { | ||||||
| 		// this wasn't treated as fatal for this process before | 		// this wasn't treated as fatal for this process before | ||||||
|   | |||||||
| @@ -43,7 +43,6 @@ go_library( | |||||||
|         "//pkg/generated/openapi:go_default_library", |         "//pkg/generated/openapi:go_default_library", | ||||||
|         "//pkg/genericapiserver:go_default_library", |         "//pkg/genericapiserver:go_default_library", | ||||||
|         "//pkg/genericapiserver/authorizer:go_default_library", |         "//pkg/genericapiserver/authorizer:go_default_library", | ||||||
|         "//pkg/genericapiserver/validation:go_default_library", |  | ||||||
|         "//pkg/registry/cachesize:go_default_library", |         "//pkg/registry/cachesize:go_default_library", | ||||||
|         "//pkg/registry/core/configmap/etcd:go_default_library", |         "//pkg/registry/core/configmap/etcd:go_default_library", | ||||||
|         "//pkg/registry/core/event/etcd:go_default_library", |         "//pkg/registry/core/event/etcd:go_default_library", | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ func (s *ServerRunOptions) AddFlags(fs *pflag.FlagSet) { | |||||||
| 	// Add the generic flags. | 	// Add the generic flags. | ||||||
| 	s.GenericServerRunOptions.AddUniversalFlags(fs) | 	s.GenericServerRunOptions.AddUniversalFlags(fs) | ||||||
| 	//Add etcd specific flags. | 	//Add etcd specific flags. | ||||||
| 	s.GenericServerRunOptions.AddEtcdStorageFlags(fs) | 	s.GenericServerRunOptions.Etcd.AddEtcdStorageFlags(fs) | ||||||
|  |  | ||||||
| 	fs.DurationVar(&s.EventTTL, "event-ttl", s.EventTTL, | 	fs.DurationVar(&s.EventTTL, "event-ttl", s.EventTTL, | ||||||
| 		"Amount of time to retain events. Default is 1h.") | 		"Amount of time to retain events. Default is 1h.") | ||||||
|   | |||||||
| @@ -38,7 +38,6 @@ import ( | |||||||
| 	"k8s.io/kubernetes/pkg/generated/openapi" | 	"k8s.io/kubernetes/pkg/generated/openapi" | ||||||
| 	"k8s.io/kubernetes/pkg/genericapiserver" | 	"k8s.io/kubernetes/pkg/genericapiserver" | ||||||
| 	"k8s.io/kubernetes/pkg/genericapiserver/authorizer" | 	"k8s.io/kubernetes/pkg/genericapiserver/authorizer" | ||||||
| 	genericvalidation "k8s.io/kubernetes/pkg/genericapiserver/validation" |  | ||||||
| 	"k8s.io/kubernetes/pkg/registry/cachesize" | 	"k8s.io/kubernetes/pkg/registry/cachesize" | ||||||
| 	"k8s.io/kubernetes/pkg/registry/generic" | 	"k8s.io/kubernetes/pkg/registry/generic" | ||||||
| 	"k8s.io/kubernetes/pkg/registry/generic/registry" | 	"k8s.io/kubernetes/pkg/registry/generic/registry" | ||||||
| @@ -67,7 +66,9 @@ cluster's shared state through which all other components interact.`, | |||||||
|  |  | ||||||
| // Run runs the specified APIServer.  This should never exit. | // Run runs the specified APIServer.  This should never exit. | ||||||
| func Run(s *options.ServerRunOptions) error { | func Run(s *options.ServerRunOptions) error { | ||||||
| 	genericvalidation.VerifyEtcdServersList(s.GenericServerRunOptions) | 	if errs := s.GenericServerRunOptions.Etcd.Validate(); len(errs) > 0 { | ||||||
|  | 		glog.Fatal(errs) | ||||||
|  | 	} | ||||||
| 	genericapiserver.DefaultAndValidateRunOptions(s.GenericServerRunOptions) | 	genericapiserver.DefaultAndValidateRunOptions(s.GenericServerRunOptions) | ||||||
| 	genericConfig := genericapiserver.NewConfig(). // create the new config | 	genericConfig := genericapiserver.NewConfig(). // create the new config | ||||||
| 							ApplyOptions(s.GenericServerRunOptions). // apply the options selected | 							ApplyOptions(s.GenericServerRunOptions). // apply the options selected | ||||||
| @@ -80,23 +81,23 @@ func Run(s *options.ServerRunOptions) error { | |||||||
| 	// TODO: register cluster federation resources here. | 	// TODO: register cluster federation resources here. | ||||||
| 	resourceConfig := genericapiserver.NewResourceConfig() | 	resourceConfig := genericapiserver.NewResourceConfig() | ||||||
|  |  | ||||||
| 	if s.GenericServerRunOptions.StorageConfig.DeserializationCacheSize == 0 { | 	if s.GenericServerRunOptions.Etcd.StorageConfig.DeserializationCacheSize == 0 { | ||||||
| 		// When size of cache is not explicitly set, set it to 50000 | 		// When size of cache is not explicitly set, set it to 50000 | ||||||
| 		s.GenericServerRunOptions.StorageConfig.DeserializationCacheSize = 50000 | 		s.GenericServerRunOptions.Etcd.StorageConfig.DeserializationCacheSize = 50000 | ||||||
| 	} | 	} | ||||||
| 	storageGroupsToEncodingVersion, err := s.GenericServerRunOptions.StorageGroupsToEncodingVersion() | 	storageGroupsToEncodingVersion, err := s.GenericServerRunOptions.StorageGroupsToEncodingVersion() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		glog.Fatalf("error generating storage version map: %s", err) | 		glog.Fatalf("error generating storage version map: %s", err) | ||||||
| 	} | 	} | ||||||
| 	storageFactory, err := genericapiserver.BuildDefaultStorageFactory( | 	storageFactory, err := genericapiserver.BuildDefaultStorageFactory( | ||||||
| 		s.GenericServerRunOptions.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, | 		s.GenericServerRunOptions.Etcd.StorageConfig, s.GenericServerRunOptions.DefaultStorageMediaType, api.Codecs, | ||||||
| 		genericapiserver.NewDefaultResourceEncodingConfig(), storageGroupsToEncodingVersion, | 		genericapiserver.NewDefaultResourceEncodingConfig(), storageGroupsToEncodingVersion, | ||||||
| 		[]schema.GroupVersionResource{}, resourceConfig, s.GenericServerRunOptions.RuntimeConfig) | 		[]schema.GroupVersionResource{}, resourceConfig, s.GenericServerRunOptions.RuntimeConfig) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		glog.Fatalf("error in initializing storage factory: %s", err) | 		glog.Fatalf("error in initializing storage factory: %s", err) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	for _, override := range s.GenericServerRunOptions.EtcdServersOverrides { | 	for _, override := range s.GenericServerRunOptions.Etcd.EtcdServersOverrides { | ||||||
| 		tokens := strings.Split(override, "#") | 		tokens := strings.Split(override, "#") | ||||||
| 		if len(tokens) != 2 { | 		if len(tokens) != 2 { | ||||||
| 			glog.Errorf("invalid value of etcd server overrides: %s", override) | 			glog.Errorf("invalid value of etcd server overrides: %s", override) | ||||||
|   | |||||||
| @@ -17,20 +17,55 @@ limitations under the License. | |||||||
| package options | package options | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"fmt" | ||||||
|  |  | ||||||
| 	"github.com/spf13/pflag" | 	"github.com/spf13/pflag" | ||||||
|  |  | ||||||
|  | 	"k8s.io/kubernetes/pkg/storage/storagebackend" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| 	DefaultEtcdPathPrefix = "/registry" | 	DefaultEtcdPathPrefix = "/registry" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // AddEtcdFlags adds flags related to etcd storage for a specific APIServer to the specified FlagSet | type EtcdOptions struct { | ||||||
| func (s *ServerRunOptions) AddEtcdStorageFlags(fs *pflag.FlagSet) { | 	StorageConfig storagebackend.Config | ||||||
|  |  | ||||||
|  | 	EtcdServersOverrides []string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func NewDefaultEtcdOptions() *EtcdOptions { | ||||||
|  | 	return &EtcdOptions{ | ||||||
|  | 		StorageConfig: storagebackend.Config{ | ||||||
|  | 			Prefix: DefaultEtcdPathPrefix, | ||||||
|  | 			// Default cache size to 0 - if unset, its size will be set based on target | ||||||
|  | 			// memory usage. | ||||||
|  | 			DeserializationCacheSize: 0, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (s *EtcdOptions) Validate() []error { | ||||||
|  | 	allErrors := []error{} | ||||||
|  | 	if len(s.StorageConfig.ServerList) == 0 { | ||||||
|  | 		allErrors = append(allErrors, fmt.Errorf("--etcd-servers must be specified")) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return allErrors | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // AddEtcdFlags adds flags related to etcd storage for a specific APIServer to the specified FlagSet | ||||||
|  | func (s *EtcdOptions) AddEtcdStorageFlags(fs *pflag.FlagSet) { | ||||||
| 	fs.StringSliceVar(&s.EtcdServersOverrides, "etcd-servers-overrides", s.EtcdServersOverrides, ""+ | 	fs.StringSliceVar(&s.EtcdServersOverrides, "etcd-servers-overrides", s.EtcdServersOverrides, ""+ | ||||||
| 		"Per-resource etcd servers overrides, comma separated. The individual override "+ | 		"Per-resource etcd servers overrides, comma separated. The individual override "+ | ||||||
| 		"format: group/resource#servers, where servers are http://ip:port, semicolon separated.") | 		"format: group/resource#servers, where servers are http://ip:port, semicolon separated.") | ||||||
|  |  | ||||||
|  | 	fs.StringVar(&s.StorageConfig.Type, "storage-backend", s.StorageConfig.Type, | ||||||
|  | 		"The storage backend for persistence. Options: 'etcd2' (default), 'etcd3'.") | ||||||
|  |  | ||||||
|  | 	fs.IntVar(&s.StorageConfig.DeserializationCacheSize, "deserialization-cache-size", s.StorageConfig.DeserializationCacheSize, | ||||||
|  | 		"Number of deserialized json objects to cache in memory.") | ||||||
|  |  | ||||||
| 	fs.StringSliceVar(&s.StorageConfig.ServerList, "etcd-servers", s.StorageConfig.ServerList, | 	fs.StringSliceVar(&s.StorageConfig.ServerList, "etcd-servers", s.StorageConfig.ServerList, | ||||||
| 		"List of etcd servers to connect with (scheme://ip:port), comma separated.") | 		"List of etcd servers to connect with (scheme://ip:port), comma separated.") | ||||||
|  |  | ||||||
|   | |||||||
| @@ -29,7 +29,6 @@ import ( | |||||||
| 	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" | 	clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" | ||||||
| 	"k8s.io/kubernetes/pkg/client/restclient" | 	"k8s.io/kubernetes/pkg/client/restclient" | ||||||
| 	"k8s.io/kubernetes/pkg/runtime/schema" | 	"k8s.io/kubernetes/pkg/runtime/schema" | ||||||
| 	"k8s.io/kubernetes/pkg/storage/storagebackend" |  | ||||||
| 	"k8s.io/kubernetes/pkg/util/config" | 	"k8s.io/kubernetes/pkg/util/config" | ||||||
| 	utilnet "k8s.io/kubernetes/pkg/util/net" | 	utilnet "k8s.io/kubernetes/pkg/util/net" | ||||||
|  |  | ||||||
| @@ -55,6 +54,8 @@ var AuthorizationModeChoices = []string{ModeAlwaysAllow, ModeAlwaysDeny, ModeABA | |||||||
|  |  | ||||||
| // ServerRunOptions contains the options while running a generic api server. | // ServerRunOptions contains the options while running a generic api server. | ||||||
| type ServerRunOptions struct { | type ServerRunOptions struct { | ||||||
|  | 	Etcd *EtcdOptions | ||||||
|  |  | ||||||
| 	AdmissionControl           string | 	AdmissionControl           string | ||||||
| 	AdmissionControlConfigFile string | 	AdmissionControlConfigFile string | ||||||
| 	AdvertiseAddress           net.IP | 	AdvertiseAddress           net.IP | ||||||
| @@ -86,8 +87,6 @@ type ServerRunOptions struct { | |||||||
| 	EnableContentionProfiling    bool | 	EnableContentionProfiling    bool | ||||||
| 	EnableSwaggerUI              bool | 	EnableSwaggerUI              bool | ||||||
| 	EnableWatchCache             bool | 	EnableWatchCache             bool | ||||||
| 	EtcdServersOverrides         []string |  | ||||||
| 	StorageConfig                storagebackend.Config |  | ||||||
| 	ExternalHost                 string | 	ExternalHost                 string | ||||||
| 	InsecureBindAddress          net.IP | 	InsecureBindAddress          net.IP | ||||||
| 	InsecurePort                 int | 	InsecurePort                 int | ||||||
| @@ -157,12 +156,7 @@ func NewServerRunOptions() *ServerRunOptions { | |||||||
| } | } | ||||||
|  |  | ||||||
| func (o *ServerRunOptions) WithEtcdOptions() *ServerRunOptions { | func (o *ServerRunOptions) WithEtcdOptions() *ServerRunOptions { | ||||||
| 	o.StorageConfig = storagebackend.Config{ | 	o.Etcd = NewDefaultEtcdOptions() | ||||||
| 		Prefix: DefaultEtcdPathPrefix, |  | ||||||
| 		// Default cache size to 0 - if unset, its size will be set based on target |  | ||||||
| 		// memory usage. |  | ||||||
| 		DeserializationCacheSize: 0, |  | ||||||
| 	} |  | ||||||
| 	return o | 	return o | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -472,12 +466,6 @@ func (s *ServerRunOptions) AddUniversalFlags(fs *pflag.FlagSet) { | |||||||
| 	fs.Var(&s.ServiceNodePortRange, "service-node-ports", "DEPRECATED: see --service-node-port-range instead") | 	fs.Var(&s.ServiceNodePortRange, "service-node-ports", "DEPRECATED: see --service-node-port-range instead") | ||||||
| 	fs.MarkDeprecated("service-node-ports", "see --service-node-port-range instead") | 	fs.MarkDeprecated("service-node-ports", "see --service-node-port-range instead") | ||||||
|  |  | ||||||
| 	fs.StringVar(&s.StorageConfig.Type, "storage-backend", s.StorageConfig.Type, |  | ||||||
| 		"The storage backend for persistence. Options: 'etcd2' (default), 'etcd3'.") |  | ||||||
|  |  | ||||||
| 	fs.IntVar(&s.StorageConfig.DeserializationCacheSize, "deserialization-cache-size", s.StorageConfig.DeserializationCacheSize, |  | ||||||
| 		"Number of deserialized json objects to cache in memory.") |  | ||||||
|  |  | ||||||
| 	deprecatedStorageVersion := "" | 	deprecatedStorageVersion := "" | ||||||
| 	fs.StringVar(&deprecatedStorageVersion, "storage-version", deprecatedStorageVersion, | 	fs.StringVar(&deprecatedStorageVersion, "storage-version", deprecatedStorageVersion, | ||||||
| 		"DEPRECATED: the version to store the legacy v1 resources with. Defaults to server preferred.") | 		"DEPRECATED: the version to store the legacy v1 resources with. Defaults to server preferred.") | ||||||
|   | |||||||
| @@ -12,10 +12,7 @@ load( | |||||||
|  |  | ||||||
| go_library( | go_library( | ||||||
|     name = "go_default_library", |     name = "go_default_library", | ||||||
|     srcs = [ |     srcs = ["universal_validation.go"], | ||||||
|         "etcd_validation.go", |  | ||||||
|         "universal_validation.go", |  | ||||||
|     ], |  | ||||||
|     tags = ["automanaged"], |     tags = ["automanaged"], | ||||||
|     deps = [ |     deps = [ | ||||||
|         "//pkg/genericapiserver/options:go_default_library", |         "//pkg/genericapiserver/options:go_default_library", | ||||||
|   | |||||||
| @@ -1,28 +0,0 @@ | |||||||
| /* |  | ||||||
| Copyright 2014 The Kubernetes Authors. |  | ||||||
|  |  | ||||||
| Licensed under the Apache License, Version 2.0 (the "License"); |  | ||||||
| you may not use this file except in compliance with the License. |  | ||||||
| You may obtain a copy of the License at |  | ||||||
|  |  | ||||||
|     http://www.apache.org/licenses/LICENSE-2.0 |  | ||||||
|  |  | ||||||
| Unless required by applicable law or agreed to in writing, software |  | ||||||
| distributed under the License is distributed on an "AS IS" BASIS, |  | ||||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |  | ||||||
| See the License for the specific language governing permissions and |  | ||||||
| limitations under the License. |  | ||||||
| */ |  | ||||||
|  |  | ||||||
| package validation |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"github.com/golang/glog" |  | ||||||
| 	"k8s.io/kubernetes/pkg/genericapiserver/options" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func VerifyEtcdServersList(options *options.ServerRunOptions) { |  | ||||||
| 	if len(options.StorageConfig.ServerList) == 0 { |  | ||||||
| 		glog.Fatalf("--etcd-servers must be specified") |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
| @@ -41,7 +41,7 @@ func NewAPIServer() *APIServer { | |||||||
| // Start starts the apiserver, returns when apiserver is ready. | // Start starts the apiserver, returns when apiserver is ready. | ||||||
| func (a *APIServer) Start() error { | func (a *APIServer) Start() error { | ||||||
| 	config := options.NewServerRunOptions() | 	config := options.NewServerRunOptions() | ||||||
| 	config.GenericServerRunOptions.StorageConfig.ServerList = []string{getEtcdClientURL()} | 	config.GenericServerRunOptions.Etcd.StorageConfig.ServerList = []string{getEtcdClientURL()} | ||||||
| 	_, ipnet, err := net.ParseCIDR(clusterIPRange) | 	_, ipnet, err := net.ParseCIDR(clusterIPRange) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return err | 		return err | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user