mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	check if experimental is enabled during startup of client and server
This commit is contained in:
		@@ -35,7 +35,7 @@ import (
 | 
				
			|||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/latest"
 | 
						"k8s.io/kubernetes/pkg/api/latest"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/meta"
 | 
						"k8s.io/kubernetes/pkg/api/meta"
 | 
				
			||||||
	explatest "k8s.io/kubernetes/pkg/apis/experimental/latest"
 | 
						"k8s.io/kubernetes/pkg/api/registered"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/apiserver"
 | 
						"k8s.io/kubernetes/pkg/apiserver"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/capabilities"
 | 
						"k8s.io/kubernetes/pkg/capabilities"
 | 
				
			||||||
	client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
						client "k8s.io/kubernetes/pkg/client/unversioned"
 | 
				
			||||||
@@ -331,6 +331,10 @@ func (s *APIServer) Run(_ []string) error {
 | 
				
			|||||||
	// This takes preference over api/all, if specified.
 | 
						// This takes preference over api/all, if specified.
 | 
				
			||||||
	enableExp := s.getRuntimeConfigValue("experimental/v1", false)
 | 
						enableExp := s.getRuntimeConfigValue("experimental/v1", false)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if enableExp && len(registered.GroupVersionsForGroup("experimental")) == 0 {
 | 
				
			||||||
 | 
							glog.Fatalf("experimental API is enabled in runtime config, but not registered throught environment variable KUBE_API_VERSIONS")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	clientConfig := &client.Config{
 | 
						clientConfig := &client.Config{
 | 
				
			||||||
		Host:    net.JoinHostPort(s.InsecureBindAddress.String(), strconv.Itoa(s.InsecurePort)),
 | 
							Host:    net.JoinHostPort(s.InsecureBindAddress.String(), strconv.Itoa(s.InsecurePort)),
 | 
				
			||||||
		Version: s.StorageVersion,
 | 
							Version: s.StorageVersion,
 | 
				
			||||||
@@ -344,10 +348,15 @@ func (s *APIServer) Run(_ []string) error {
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		glog.Fatalf("Invalid storage version or misconfigured etcd: %v", err)
 | 
							glog.Fatalf("Invalid storage version or misconfigured etcd: %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	expEtcdStorage, err := newEtcd(s.EtcdConfigFile, s.EtcdServerList, latest.GroupOrDie("experimental").InterfacesFor, latest.GroupOrDie("experimental").Version, s.ExpStorageVersion, s.EtcdPathPrefix)
 | 
					
 | 
				
			||||||
 | 
						var expEtcdStorage storage.Interface
 | 
				
			||||||
 | 
						if enableExp {
 | 
				
			||||||
 | 
							expEtcdStorage, err = newEtcd(s.EtcdConfigFile, s.EtcdServerList, latest.GroupOrDie("experimental").InterfacesFor, latest.GroupOrDie("experimental").Version, s.ExpStorageVersion, s.EtcdPathPrefix)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			glog.Fatalf("Invalid experimental storage version or misconfigured etcd: %v", err)
 | 
								glog.Fatalf("Invalid experimental storage version or misconfigured etcd: %v", err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	n := s.ServiceClusterIPRange
 | 
						n := s.ServiceClusterIPRange
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -119,14 +119,20 @@ func NewExperimentalOrDie(c *Config) *ExperimentalClient {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func setExperimentalDefaults(config *Config) error {
 | 
					func setExperimentalDefaults(config *Config) error {
 | 
				
			||||||
 | 
						// if experimental group is not registered, return an error
 | 
				
			||||||
 | 
						g, err := latest.Group("experimental")
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	config.Prefix = "/experimental"
 | 
						config.Prefix = "/experimental"
 | 
				
			||||||
	if config.UserAgent == "" {
 | 
						if config.UserAgent == "" {
 | 
				
			||||||
		config.UserAgent = DefaultKubernetesUserAgent()
 | 
							config.UserAgent = DefaultKubernetesUserAgent()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if config.Version == "" {
 | 
						if config.Version == "" {
 | 
				
			||||||
		config.Version = latest.GroupOrDie("experimental").Version
 | 
							config.Version = g.Version
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	versionInterfaces, err := latest.GroupOrDie("experimental").InterfacesFor(config.Version)
 | 
					
 | 
				
			||||||
 | 
						versionInterfaces, err := g.InterfacesFor(config.Version)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return fmt.Errorf("Experimental API version '%s' is not recognized (valid values: %s)",
 | 
							return fmt.Errorf("Experimental API version '%s' is not recognized (valid values: %s)",
 | 
				
			||||||
			config.Version, strings.Join(latest.GroupOrDie("experimental").Versions, ", "))
 | 
								config.Version, strings.Join(latest.GroupOrDie("experimental").Versions, ", "))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,6 +33,7 @@ import (
 | 
				
			|||||||
	"github.com/golang/glog"
 | 
						"github.com/golang/glog"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/latest"
 | 
						"k8s.io/kubernetes/pkg/api/latest"
 | 
				
			||||||
 | 
						"k8s.io/kubernetes/pkg/api/registered"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/runtime"
 | 
						"k8s.io/kubernetes/pkg/runtime"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util"
 | 
						"k8s.io/kubernetes/pkg/util"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/util/sets"
 | 
						"k8s.io/kubernetes/pkg/util/sets"
 | 
				
			||||||
@@ -140,6 +141,10 @@ func New(c *Config) (*Client, error) {
 | 
				
			|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if len(registered.GroupVersionsForGroup("experimental")) == 0 {
 | 
				
			||||||
 | 
							return &Client{RESTClient: client, ExperimentalClient: nil}, nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	experimentalConfig := *c
 | 
						experimentalConfig := *c
 | 
				
			||||||
	experimentalClient, err := NewExperimental(&experimentalConfig)
 | 
						experimentalClient, err := NewExperimental(&experimentalConfig)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user