ci: add kubectl setup and kubeconfig configuration to E2E workflow

The deploy-plugin-to-headlamp.sh script requires kubectl to copy built
plugin files into the Headlamp pod. Install kubectl via azure/setup-kubectl
and configure kubeconfig from either a KUBECONFIG secret (base64-encoded)
or the in-cluster service account token.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Gandalf the Greybeard
2026-03-16 01:10:56 +00:00
parent ef73bf97fc
commit 57f3a59ae1
+23
View File
@@ -68,6 +68,29 @@ jobs:
- name: Build plugin
run: npm run build
- name: Setup kubectl
uses: azure/setup-kubectl@v4
- name: Configure kubeconfig
env:
KUBECONFIG_DATA: ${{ secrets.KUBECONFIG }}
run: |
if [ -n "$KUBECONFIG_DATA" ]; then
mkdir -p ~/.kube
echo "$KUBECONFIG_DATA" | base64 -d > ~/.kube/config
chmod 600 ~/.kube/config
elif [ -f /var/run/secrets/kubernetes.io/serviceaccount/token ]; then
SA_TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
CA_CERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
kubectl config set-cluster in-cluster --server=https://kubernetes.default.svc --certificate-authority="$CA_CERT"
kubectl config set-credentials sa-user --token="$SA_TOKEN"
kubectl config set-context in-cluster --cluster=in-cluster --user=sa-user --namespace="$NAMESPACE"
kubectl config use-context in-cluster
fi
kubectl version --client
kubectl cluster-info || echo "::warning::Cannot reach cluster API — deploy step may fail"
- name: Deploy plugin to Headlamp
env:
HEADLAMP_URL: ${{ secrets.HEADLAMP_URL || 'http://headlamp.kube-system.svc.cluster.local' }}