From ca685f78addd9277ea60fc892bd9997a1ad6c05b Mon Sep 17 00:00:00 2001 From: ziollek Date: Wed, 19 Oct 2022 22:27:11 +0200 Subject: [PATCH] Fixes #9616 remove kubectl version check (#9623) * Fixes #9616 remove kubectl version check Signed-off-by: tomasz.ziolkowski --- pkg/healthcheck/healthcheck.go | 7 --- pkg/k8s/kubectl.go | 43 ------------------- pkg/k8s/kubectl_test.go | 34 --------------- .../install/smoke/testdata/check.proxy.golden | 1 - .../install/testdata/check.cni.proxy.golden | 1 - .../install/testdata/check.config.golden | 1 - .../testdata/check.multicluster.proxy.golden | 1 - .../install/testdata/check.pre.golden | 1 - .../install/testdata/check.proxy.golden | 1 - .../uninstall/testdata/check.pre.golden | 1 - .../testdata/check.upgrade.golden | 1 - .../testdata/check.upgrade.golden | 1 - 12 files changed, 93 deletions(-) delete mode 100644 pkg/k8s/kubectl.go delete mode 100644 pkg/k8s/kubectl_test.go diff --git a/pkg/healthcheck/healthcheck.go b/pkg/healthcheck/healthcheck.go index ba0ad745e..20d68a4e0 100644 --- a/pkg/healthcheck/healthcheck.go +++ b/pkg/healthcheck/healthcheck.go @@ -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, ), diff --git a/pkg/k8s/kubectl.go b/pkg/k8s/kubectl.go deleted file mode 100644 index 5a335e730..000000000 --- a/pkg/k8s/kubectl.go +++ /dev/null @@ -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) -} diff --git a/pkg/k8s/kubectl_test.go b/pkg/k8s/kubectl_test.go deleted file mode 100644 index 629a22efb..000000000 --- a/pkg/k8s/kubectl_test.go +++ /dev/null @@ -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") - } -} diff --git a/test/integration/install/smoke/testdata/check.proxy.golden b/test/integration/install/smoke/testdata/check.proxy.golden index 10f3b3686..2a53c475c 100644 --- a/test/integration/install/smoke/testdata/check.proxy.golden +++ b/test/integration/install/smoke/testdata/check.proxy.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version linkerd-existence ----------------- diff --git a/test/integration/install/testdata/check.cni.proxy.golden b/test/integration/install/testdata/check.cni.proxy.golden index 6c6332cf3..c5facfde6 100644 --- a/test/integration/install/testdata/check.cni.proxy.golden +++ b/test/integration/install/testdata/check.cni.proxy.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version linkerd-existence ----------------- diff --git a/test/integration/install/testdata/check.config.golden b/test/integration/install/testdata/check.config.golden index 1895322e0..7865bddec 100644 --- a/test/integration/install/testdata/check.config.golden +++ b/test/integration/install/testdata/check.config.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version linkerd-config -------------- diff --git a/test/integration/install/testdata/check.multicluster.proxy.golden b/test/integration/install/testdata/check.multicluster.proxy.golden index 743d31562..ef592a454 100644 --- a/test/integration/install/testdata/check.multicluster.proxy.golden +++ b/test/integration/install/testdata/check.multicluster.proxy.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version linkerd-existence ----------------- diff --git a/test/integration/install/testdata/check.pre.golden b/test/integration/install/testdata/check.pre.golden index 1f72a63c9..419cd3b53 100644 --- a/test/integration/install/testdata/check.pre.golden +++ b/test/integration/install/testdata/check.pre.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version pre-kubernetes-setup -------------------- diff --git a/test/integration/install/testdata/check.proxy.golden b/test/integration/install/testdata/check.proxy.golden index 10f3b3686..2a53c475c 100644 --- a/test/integration/install/testdata/check.proxy.golden +++ b/test/integration/install/testdata/check.proxy.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version linkerd-existence ----------------- diff --git a/test/integration/install/uninstall/testdata/check.pre.golden b/test/integration/install/uninstall/testdata/check.pre.golden index 1f72a63c9..419cd3b53 100644 --- a/test/integration/install/uninstall/testdata/check.pre.golden +++ b/test/integration/install/uninstall/testdata/check.pre.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version pre-kubernetes-setup -------------------- diff --git a/test/integration/upgrade-edge/testdata/check.upgrade.golden b/test/integration/upgrade-edge/testdata/check.upgrade.golden index fa9267960..325434390 100644 --- a/test/integration/upgrade-edge/testdata/check.upgrade.golden +++ b/test/integration/upgrade-edge/testdata/check.upgrade.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version linkerd-existence ----------------- diff --git a/test/integration/upgrade-stable/testdata/check.upgrade.golden b/test/integration/upgrade-stable/testdata/check.upgrade.golden index fa9267960..325434390 100644 --- a/test/integration/upgrade-stable/testdata/check.upgrade.golden +++ b/test/integration/upgrade-stable/testdata/check.upgrade.golden @@ -9,7 +9,6 @@ kubernetes-api kubernetes-version ------------------ √ is running the minimum Kubernetes API version -√ is running the minimum kubectl version linkerd-existence -----------------