github.com/kubeshop/testkube@v1.17.23/install.sh (about) 1 #!/bin/bash 2 echo "Getting kubectl-testkube plugin" 3 4 if [ ! -z "${DEBUG}" ]; 5 then set -x 6 fi 7 8 _detect_arch() { 9 case $(uname -m) in 10 amd64|x86_64) echo "x86_64" 11 ;; 12 arm64|aarch64) echo "arm64" 13 ;; 14 i386) echo "i386" 15 ;; 16 *) echo "Unsupported processor architecture"; 17 return 1 18 ;; 19 esac 20 } 21 22 _detect_os(){ 23 case $(uname) in 24 Linux) echo "Linux" 25 ;; 26 Darwin) echo "Darwin" 27 ;; 28 Windows) echo "Windows" 29 ;; 30 esac 31 } 32 33 _download_url() { 34 local arch 35 local os 36 local tag 37 local version 38 39 arch="$(_detect_arch)" 40 os="$(_detect_os)" 41 if [ -z "$TESTKUBE_VERSION" ]; then 42 if [ "$1" = "beta" ]; then 43 tag="$( 44 curl -s "https://api.github.com/repos/kubeshop/testkube/releases" \ 45 2>/dev/null \ 46 | jq -r '.[].tag_name | select(test("beta"))' \ 47 | head -n 1 \ 48 )" 49 if [ -z "$tag" ]; then 50 echo "No beta releases found. Installing latest release" >&2 51 tag="$( 52 curl -s "https://api.github.com/repos/kubeshop/testkube/releases/latest" \ 53 2>/dev/null \ 54 | jq -r '.tag_name' \ 55 )" 56 fi 57 else 58 tag="$( 59 curl -s "https://api.github.com/repos/kubeshop/testkube/releases/latest" \ 60 2>/dev/null \ 61 | jq -r '.tag_name' \ 62 )" 63 fi 64 else 65 tag="$TESTKUBE_VERSION" 66 fi 67 version="${tag/#v/}" # remove leading v if present 68 69 echo "https://github.com/kubeshop/testkube/releases/download/${tag}/testkube_${version:-1}_${os}_$arch.tar.gz" 70 } 71 72 if [ "$1" = "beta" ]; then 73 url="$(_download_url "beta")" 74 echo "Downloading testkube from URL: $url" 75 curl -sSLf "$url" > testkube.tar.gz 76 else 77 echo "Downloading testkube from URL: $(_download_url)" 78 curl -sSLf "$(_download_url)" > testkube.tar.gz 79 fi 80 81 tar -xzf testkube.tar.gz kubectl-testkube 82 rm testkube.tar.gz 83 mv kubectl-testkube /usr/local/bin/kubectl-testkube 84 ln -s /usr/local/bin/kubectl-testkube /usr/local/bin/testkube 85 ln -s /usr/local/bin/kubectl-testkube /usr/local/bin/tk 86 87 echo "kubectl-testkube installed in:" 88 echo "- /usr/local/bin/kubectl-testkube" 89 echo "- /usr/local/bin/testkube" 90 echo "- /usr/local/bin/tk" 91 echo "" 92 echo "You'll also need `helm` and Kubernetes `kubectl` installed." 93 echo "- Install Helm: https://helm.sh/docs/intro/install/" 94 echo "- Install kubectl: https://kubernetes.io/docs/tasks/tools/#kubectl"