From b4349fecaa626865e71b058a8b01e0377fb9e444 Mon Sep 17 00:00:00 2001 From: Stephen Cahill Date: Mon, 25 Mar 2024 20:58:01 -0400 Subject: [PATCH] replace exec with client create --- hack/ensure-kubectl.sh | 65 --------------- scripts/ci-e2e.sh | 2 - test/e2e/clusterclass_rollout.go | 6 +- test/e2e/clusterctl_upgrade.go | 2 +- test/e2e/kcp_adoption.go | 19 +++-- test/e2e/kcp_remediations.go | 2 +- test/e2e/scale.go | 8 +- test/framework/autoscaler_helpers.go | 2 +- test/framework/cluster_proxy.go | 82 +++++++++++++++---- .../clusterctl/clusterctl_helpers.go | 10 +-- test/framework/exec/kubectl.go | 70 ---------------- 11 files changed, 91 insertions(+), 177 deletions(-) delete mode 100755 hack/ensure-kubectl.sh delete mode 100644 test/framework/exec/kubectl.go diff --git a/hack/ensure-kubectl.sh b/hack/ensure-kubectl.sh deleted file mode 100755 index 13b6dd8b8a38..000000000000 --- a/hack/ensure-kubectl.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env bash - -# Copyright 2019 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -o errexit -set -o nounset -set -o pipefail - -if [[ "${TRACE-0}" == "1" ]]; then - set -o xtrace -fi - - -# shellcheck source=./hack/utils.sh -source "$(dirname "${BASH_SOURCE[0]}")/utils.sh" - -GOPATH_BIN="$(go env GOPATH)/bin/" -MINIMUM_KUBECTL_VERSION=v1.28.0 -goarch="$(go env GOARCH)" -goos="$(go env GOOS)" - -# Ensure the kubectl tool exists and is a viable version, or installs it -verify_kubectl_version() { - - # If kubectl is not available on the path, get it - if ! [ -x "$(command -v kubectl)" ]; then - if [ "$goos" == "linux" ] || [ "$goos" == "darwin" ]; then - if ! [ -d "${GOPATH_BIN}" ]; then - mkdir -p "${GOPATH_BIN}" - fi - echo 'kubectl not found, installing' - curl -sLo "${GOPATH_BIN}/kubectl" "https://dl.k8s.io/release/${MINIMUM_KUBECTL_VERSION}/bin/${goos}/${goarch}/kubectl" - chmod +x "${GOPATH_BIN}/kubectl" - verify_gopath_bin - else - echo "Missing required binary in path: kubectl" - return 2 - fi - fi - - local kubectl_version - IFS=" " read -ra kubectl_version <<< "$(kubectl version --client)" - if [[ "${MINIMUM_KUBECTL_VERSION}" != $(echo -e "${MINIMUM_KUBECTL_VERSION}\n${kubectl_version[2]}" | sort -s -t. -k 1,1 -k 2,2n -k 3,3n | head -n1) ]]; then - cat < 0 { - fmt.Printf("stderr:\n%s\n", string(stderr)) - } - if len(stdout) > 0 { - fmt.Printf("stdout:\n%s\n", string(stdout)) - } - return err -} - -// KubectlWait shells out to kubectl wait. -func KubectlWait(ctx context.Context, kubeconfigPath string, args ...string) error { - wargs := append([]string{"wait", "--kubeconfig", kubeconfigPath}, args...) - wait := NewCommand( - WithCommand(kubectlPath()), - WithArgs(wargs...), - ) - _, stderr, err := wait.Run(ctx) - if err != nil { - fmt.Println(string(stderr)) - return err - } - return nil -} - -func kubectlPath() string { - if kubectlPath, ok := os.LookupEnv("CAPI_KUBECTL_PATH"); ok { - return kubectlPath - } - return "kubectl" -}