From e57ef4327f1eb471ac84f208c30ef1e4fc71b608 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Tue, 13 Dec 2016 09:22:48 +0100 Subject: [PATCH] Document broken behaviour with KUBE_API_VERSIONS --- cmd/kube-apiserver/app/server.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/kube-apiserver/app/server.go b/cmd/kube-apiserver/app/server.go index 546c05dfd25..c1a3cc322ce 100644 --- a/cmd/kube-apiserver/app/server.go +++ b/cmd/kube-apiserver/app/server.go @@ -25,6 +25,7 @@ import ( "net" "net/http" "net/url" + "os" "strconv" "strings" "time" @@ -246,7 +247,15 @@ func Run(s *options.ServerRunOptions) error { } client, err := internalclientset.NewForConfig(selfClientConfig) if err != nil { - return fmt.Errorf("failed to create clientset: %v", err) + kubeAPIVersions := os.Getenv("KUBE_API_VERSIONS") + if len(kubeAPIVersions) == 0 { + return fmt.Errorf("failed to create clientset: %v", err) + } + + // KUBE_API_VERSIONS is used in test-update-storage-objects.sh, disabling a number of API + // groups. This leads to a nil client above and undefined behaviour further down. + // TODO: get rid of KUBE_API_VERSIONS or define sane behaviour if set + glog.Errorf("Failed to create clientset with KUBE_API_VERSIONS=%q. KUBE_API_VERSIONS is only for testing. Things will break.", kubeAPIVersions) } sharedInformers := informers.NewSharedInformerFactory(nil, client, 10*time.Minute)