diff --git a/cmd/util.go b/cmd/util.go index 24d6d9d..97cd94a 100644 --- a/cmd/util.go +++ b/cmd/util.go @@ -33,20 +33,6 @@ func init() { statFunc = os.Stat } -func printlnWarn(msg string) { - fmt.Fprintf(os.Stderr, "[%s] %s\n", - colors[check.WARN].Sprintf("%s", check.WARN), - msg, - ) -} - -func sprintlnWarn(msg string) string { - return fmt.Sprintf("[%s] %s", - colors[check.WARN].Sprintf("%s", check.WARN), - msg, - ) -} - func exitWithError(err error) { fmt.Fprintf(os.Stderr, "\n%v\n", err) os.Exit(1) @@ -303,6 +289,12 @@ func getKubeVersion() (string, error) { if err != nil { _, err = exec.LookPath("kubelet") if err != nil { + // Search for the kubelet binary all over the filesystem and run the first match to get the kubernetes version + cmd := exec.Command("/bin/sh", "-c", "`find / -type f -executable -name kubelet 2>/dev/null | grep -m1 .` --version") + out, err := cmd.CombinedOutput() + if err == nil { + return getVersionFromKubeletOutput(string(out)), nil + } return "", fmt.Errorf("need kubectl or kubelet binaries to get kubernetes version") } return getKubeVersionFromKubelet(), nil @@ -336,7 +328,7 @@ func getVersionFromKubectlOutput(s string) string { serverVersionRe := regexp.MustCompile(`Server Version: v(\d+.\d+)`) subs := serverVersionRe.FindStringSubmatch(s) if len(subs) < 2 { - printlnWarn(fmt.Sprintf("Unable to get kubectl version, using default version: %s", defaultKubeVersion)) + glog.V(1).Info(fmt.Sprintf("Unable to get Kubernetes version from kubectl, using default version: %s", defaultKubeVersion)) return defaultKubeVersion } return subs[1] @@ -346,7 +338,7 @@ func getVersionFromKubeletOutput(s string) string { serverVersionRe := regexp.MustCompile(`Kubernetes v(\d+.\d+)`) subs := serverVersionRe.FindStringSubmatch(s) if len(subs) < 2 { - printlnWarn(fmt.Sprintf("Unable to get kubelet version, using default version: %s", defaultKubeVersion)) + glog.V(1).Info(fmt.Sprintf("Unable to get Kubernetes version from kubelet, using default version: %s", defaultKubeVersion)) return defaultKubeVersion } return subs[1]