diff --git a/tests/gha-run-k8s-common.sh b/tests/gha-run-k8s-common.sh index 5b8193c88f..7f381c54a7 100644 --- a/tests/gha-run-k8s-common.sh +++ b/tests/gha-run-k8s-common.sh @@ -111,3 +111,42 @@ function get_nodes_and_pods_info() { kubectl debug $(kubectl get nodes -o name) -it --image=quay.io/kata-containers/kata-debug:latest || true kubectl get pods -o name | grep node-debugger | xargs kubectl delete || true } + +function deploy_k3s() { + curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 + + # This is an arbitrary value that came up from local tests + sleep 120s + + # Download the kubectl binary into /usr/bin and remove /usr/local/bin/kubectl + # + # We need to do this to avoid hitting issues like: + # ```sh + # error: open /etc/rancher/k3s/k3s.yaml.lock: permission denied + # ``` + # Which happens basically because k3s links `/usr/local/bin/kubectl` + # to `/usr/local/bin/k3s`, and that does extra stuff that vanilla + # `kubectl` doesn't do. + ARCH=$(uname -m) + if [ "${ARCH}" = "x86_64" ]; then + ARCH=amd64 + fi + kubectl_version=$(/usr/local/bin/k3s kubectl version --short 2>/dev/null | grep "Client Version" | sed -e 's/Client Version: //' -e 's/\+k3s1//') + sudo curl -fL --progress-bar -o /usr/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${kubectl_version}/bin/linux/${ARCH}/kubectl + sudo chmod +x /usr/bin/kubectl + sudo rm -rf /usr/local/bin/kubectl + + mkdir -p ~/.kube + cp /etc/rancher/k3s/k3s.yaml ~/.kube/config +} + +function deploy_k8s() { + echo "::group::Deploying ${KUBERNETES}" + + case ${KUBERNETES} in + k3s) deploy_k3s ;; + *) >&2 echo "${KUBERNETES} flavour is not supported"; exit 2 ;; + esac + + echo "::endgroup::" +} diff --git a/tests/integration/kubernetes/gha-run.sh b/tests/integration/kubernetes/gha-run.sh index 1cb11c4569..fa754ada87 100755 --- a/tests/integration/kubernetes/gha-run.sh +++ b/tests/integration/kubernetes/gha-run.sh @@ -137,45 +137,6 @@ function deploy_kata() { echo "::endgroup::" } -function deploy_k3s() { - curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644 - - # This is an arbitrary value that came up from local tests - sleep 120s - - # Download the kubectl binary into /usr/bin and remove /usr/local/bin/kubectl - # - # We need to do this to avoid hitting issues like: - # ```sh - # error: open /etc/rancher/k3s/k3s.yaml.lock: permission denied - # ``` - # Which happens basically because k3s links `/usr/local/bin/kubectl` - # to `/usr/local/bin/k3s`, and that does extra stuff that vanilla - # `kubectl` doesn't do. - ARCH=$(uname -m) - if [ "${ARCH}" = "x86_64" ]; then - ARCH=amd64 - fi - kubectl_version=$(/usr/local/bin/k3s kubectl version --short 2>/dev/null | grep "Client Version" | sed -e 's/Client Version: //' -e 's/\+k3s1//') - sudo curl -fL --progress-bar -o /usr/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${kubectl_version}/bin/linux/${ARCH}/kubectl - sudo chmod +x /usr/bin/kubectl - sudo rm -rf /usr/local/bin/kubectl - - mkdir -p ~/.kube - cp /etc/rancher/k3s/k3s.yaml ~/.kube/config -} - -function deploy_k8s() { - echo "::group::Deploying ${KUBERNETES}" - - case ${KUBERNETES} in - k3s) deploy_k3s ;; - *) >&2 echo "${KUBERNETES} flavour is not supported"; exit 2 ;; - esac - - echo "::endgroup::" -} - function run_tests() { # Delete any spurious tests namespace that was left behind kubectl delete namespace kata-containers-k8s-tests &> /dev/null || true