From d647ebf4f06919c7ef635143a551531fc835a375 Mon Sep 17 00:00:00 2001 From: Oran Moshai Date: Mon, 23 Apr 2018 10:59:28 +0300 Subject: [PATCH] Support for Client Version and Server Version output. --- cmd/util.go | 4 ++-- cmd/util_test.go | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cmd/util.go b/cmd/util.go index 7b8e9de..33a16bd 100644 --- a/cmd/util.go +++ b/cmd/util.go @@ -240,7 +240,7 @@ func getKubeVersionFromKubectl() string { func getKubeVersionFromKubelet() string { cmd := exec.Command("kubelet", "--version") out, err := cmd.CombinedOutput() - + if err != nil { continueWithError(fmt.Errorf("%s", out), "") } @@ -249,7 +249,7 @@ func getKubeVersionFromKubelet() string { } func getVersionFromKubectlOutput(s string) string { - serverVersionRe := regexp.MustCompile(`Server Version: v(\d+.\d+)`) + serverVersionRe := regexp.MustCompile(`v(\d+.\d+)`) subs := serverVersionRe.FindStringSubmatch(s) if len(subs) < 2 { printlnWarn(fmt.Sprintf("Unable to get kubectl version, using default version: %s", defaultKubeVersion)) diff --git a/cmd/util_test.go b/cmd/util_test.go index 3650ea0..0fca586 100644 --- a/cmd/util_test.go +++ b/cmd/util_test.go @@ -189,6 +189,16 @@ func TestKubeVersionRegex(t *testing.T) { t.Fatalf("Expected 1.8 got %s", ver) } + ver = getVersionFromKubectlOutput(`Client Version: v1.8.0`) + if ver != "1.8" { + t.Fatalf("Expected 1.8 got %s", ver) + } + + ver = getVersionFromKubectlOutput(`Server Version: v1.8.12`) + if ver != "1.8" { + t.Fatalf("Expected 1.8 got %s", ver) + } + ver = getVersionFromKubectlOutput("Something completely different") if ver != "1.6" { t.Fatalf("Expected 1.6 got %s", ver)