mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
check if experimental is enabled during startup of client and server
This commit is contained in:
parent
ac5481d089
commit
3dc5223f4f
@ -35,7 +35,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/latest"
|
||||
"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/capabilities"
|
||||
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.
|
||||
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{
|
||||
Host: net.JoinHostPort(s.InsecureBindAddress.String(), strconv.Itoa(s.InsecurePort)),
|
||||
Version: s.StorageVersion,
|
||||
@ -344,9 +348,14 @@ func (s *APIServer) Run(_ []string) error {
|
||||
if err != nil {
|
||||
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)
|
||||
if err != nil {
|
||||
glog.Fatalf("Invalid experimental storage version or misconfigured etcd: %v", err)
|
||||
|
||||
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 {
|
||||
glog.Fatalf("Invalid experimental storage version or misconfigured etcd: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
n := s.ServiceClusterIPRange
|
||||
|
@ -119,14 +119,20 @@ func NewExperimentalOrDie(c *Config) *ExperimentalClient {
|
||||
}
|
||||
|
||||
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"
|
||||
if config.UserAgent == "" {
|
||||
config.UserAgent = DefaultKubernetesUserAgent()
|
||||
}
|
||||
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 {
|
||||
return fmt.Errorf("Experimental API version '%s' is not recognized (valid values: %s)",
|
||||
config.Version, strings.Join(latest.GroupOrDie("experimental").Versions, ", "))
|
||||
|
@ -33,6 +33,7 @@ import (
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/latest"
|
||||
"k8s.io/kubernetes/pkg/api/registered"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
@ -140,6 +141,10 @@ func New(c *Config) (*Client, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(registered.GroupVersionsForGroup("experimental")) == 0 {
|
||||
return &Client{RESTClient: client, ExperimentalClient: nil}, nil
|
||||
}
|
||||
experimentalConfig := *c
|
||||
experimentalClient, err := NewExperimental(&experimentalConfig)
|
||||
if err != nil {
|
||||
|
Loading…
Reference in New Issue
Block a user