mirror of https://github.com/linkerd/linkerd2.git
* Fixes #9616 remove kubectl version check Signed-off-by: tomasz.ziolkowski <e.prace@gmail.com>
This commit is contained in:
parent
26ae0163a2
commit
ca685f78ad
|
@ -539,13 +539,6 @@ func (hc *HealthChecker) allCategories() []*Category {
|
|||
return hc.kubeAPI.CheckVersion(hc.kubeVersion)
|
||||
},
|
||||
},
|
||||
{
|
||||
description: "is running the minimum kubectl version",
|
||||
hintAnchor: "kubectl-version",
|
||||
check: func(context.Context) error {
|
||||
return k8s.CheckKubectlVersion()
|
||||
},
|
||||
},
|
||||
},
|
||||
false,
|
||||
),
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
package k8s
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
// minKubectlVersion is effectively minAPIVersion.
|
||||
// It's unlikely that the minimum supported kubectl version
|
||||
// will be different from that of the k8s API.
|
||||
var minKubectlVersion = minAPIVersion
|
||||
|
||||
// CheckKubectlVersion validates whether the installed kubectl version is
|
||||
// running a minimum kubectl version.
|
||||
func CheckKubectlVersion() error {
|
||||
cmd := exec.Command("kubectl", "version", "--client", "--short")
|
||||
bytes, err := cmd.Output()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
clientVersion := fmt.Sprintf("%s\n", bytes)
|
||||
kubectlVersion, err := parseKubectlShortVersion(clientVersion)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !isCompatibleVersion(minKubectlVersion, kubectlVersion) {
|
||||
return fmt.Errorf("kubectl is on version [%d.%d.%d], but version [%d.%d.%d] or more recent is required",
|
||||
kubectlVersion[0], kubectlVersion[1], kubectlVersion[2],
|
||||
minKubectlVersion[0], minKubectlVersion[1], minKubectlVersion[2])
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
var semVer = regexp.MustCompile("(v[0-9]+.[0-9]+.[0-9]+)")
|
||||
|
||||
func parseKubectlShortVersion(version string) ([3]int, error) {
|
||||
versionString := semVer.FindString(version)
|
||||
return getK8sVersion(versionString)
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
package k8s
|
||||
|
||||
import "testing"
|
||||
|
||||
var versionTests = []struct {
|
||||
v string // input
|
||||
expected [3]int // expected
|
||||
}{
|
||||
{"Client Version: v1.10.1", [3]int{1, 10, 1}},
|
||||
{"client Version: v1.10.1", [3]int{1, 10, 1}},
|
||||
{"Client Version - v1.10.1", [3]int{1, 10, 1}},
|
||||
{"v1.10.1", [3]int{1, 10, 1}},
|
||||
{"Client Version: v1.10.1 beta:2", [3]int{1, 10, 1}},
|
||||
{"Client Version: v2.1348.1", [3]int{2, 1348, 1}},
|
||||
}
|
||||
|
||||
func TestParseKubectlShortVersion(t *testing.T) {
|
||||
for _, tt := range versionTests {
|
||||
actual, err := parseKubectlShortVersion(tt.v)
|
||||
if err != nil {
|
||||
t.Fatalf("Unexpected error while parsing kubectl short version: %v", err)
|
||||
}
|
||||
if actual != tt.expected {
|
||||
t.Fatalf("Expected to get %v but got %v", tt.expected, actual)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseKubectlShortVersionIncorrectVersion(t *testing.T) {
|
||||
_, err := parseKubectlShortVersion("Not really a version")
|
||||
if err == nil {
|
||||
t.Fatalf("Expected to get an error")
|
||||
}
|
||||
}
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
linkerd-existence
|
||||
-----------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
linkerd-existence
|
||||
-----------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
linkerd-config
|
||||
--------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
linkerd-existence
|
||||
-----------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
pre-kubernetes-setup
|
||||
--------------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
linkerd-existence
|
||||
-----------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
pre-kubernetes-setup
|
||||
--------------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
linkerd-existence
|
||||
-----------------
|
||||
|
|
|
@ -9,7 +9,6 @@ kubernetes-api
|
|||
kubernetes-version
|
||||
------------------
|
||||
√ is running the minimum Kubernetes API version
|
||||
√ is running the minimum kubectl version
|
||||
|
||||
linkerd-existence
|
||||
-----------------
|
||||
|
|
Loading…
Reference in New Issue