diff --git a/.github/workflows/plugin-e2e.yaml b/.github/workflows/plugin-e2e.yaml index e1dc1b0..7fdbbe4 100644 --- a/.github/workflows/plugin-e2e.yaml +++ b/.github/workflows/plugin-e2e.yaml @@ -37,6 +37,42 @@ jobs: - name: Setup kubectl uses: azure/setup-kubectl@v4 + - name: Get kubeconfig + run: | + set -euo pipefail + in_cluster=false + if [ -f /var/run/secrets/kubernetes.io/serviceaccount/token ]; then + in_cluster=true + fi + if [ -f /runner/config ]; then + echo "KUBECONFIG=/runner/config" >> "$GITHUB_ENV" + elif [ -f /home/runner/.kube/config ]; then + echo "KUBECONFIG=/home/runner/.kube/config" >> "$GITHUB_ENV" + elif [ -f "${HOME:-}/.kube/config" ]; then + echo "KUBECONFIG=${HOME:-}/.kube/config" >> "$GITHUB_ENV" + elif [ "$in_cluster" = true ]; then + KUBECFG_DIR="${HOME:-}/.kube" + mkdir -p "$KUBECFG_DIR" + kubectl config set-cluster in-cluster \ + --server="https://${KUBERNETES_SERVICE_HOST:-kubernetes.default.svc}:${KUBERNETES_SERVICE_PORT:-443}" \ + --certificate-authority=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt \ + --embed-certs=true \ + --kubeconfig="$KUBECFG_DIR/config" 2>&1 + kubectl config set-credentials in-cluster \ + --token="$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \ + --kubeconfig="$KUBECFG_DIR/config" 2>&1 + kubectl config set-context in-cluster \ + --cluster=in-cluster \ + --user=in-cluster \ + --kubeconfig="$KUBECFG_DIR/config" 2>&1 + kubectl config use-context in-cluster \ + --kubeconfig="$KUBECFG_DIR/config" 2>&1 + echo "KUBECONFIG=$KUBECFG_DIR/config" >> "$GITHUB_ENV" + else + echo "::error::No kubeconfig found" + exit 1 + fi + - name: Install dependencies run: npm ci