fix(e2e): clean kubeconfig discovery without diagnostic overhead
Simplified kubeconfig discovery. Search standard paths and exit 0 immediately upon finding one. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
+10
-41
@@ -45,49 +45,18 @@ jobs:
|
|||||||
- name: Setup kubectl
|
- name: Setup kubectl
|
||||||
uses: azure/setup-kubectl@v4
|
uses: azure/setup-kubectl@v4
|
||||||
|
|
||||||
- name: Get kubeconfig via kubectl config
|
- name: Get kubeconfig
|
||||||
run: |
|
run: |
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
echo "HOME=${HOME}"
|
for path in /runner /runner/config "$HOME/.kube" "$HOME/.kube/config" /home/runner/.kube /home/runner/.kube/config; do
|
||||||
echo "KUBERNETES_SERVICE_HOST=${KUBERNETES_SERVICE_HOST:-<unset>}"
|
if [ -f "$path" ]; then
|
||||||
echo "KUBERNETES_SERVICE_PORT=${KUBERNETES_SERVICE_PORT:-<unset>}"
|
echo "KUBECONFIG=${path}" >> "$GITHUB_ENV"
|
||||||
echo "Checking service account token..."
|
echo "Found kubeconfig at ${path}"
|
||||||
if [ -f /var/run/secrets/kubernetes.io/serviceaccount/token ]; then
|
kubectl cluster-info --request-timeout=5s
|
||||||
echo "Service account token found"
|
exit 0
|
||||||
KUBECONFIG=/tmp/kubeconfig-incluster
|
fi
|
||||||
cat > "$KUBECONFIG" <<EOF
|
done
|
||||||
apiVersion: v1
|
echo "No kubeconfig found; kubectl will use default config"
|
||||||
kind: Config
|
|
||||||
clusters:
|
|
||||||
- cluster:
|
|
||||||
certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
||||||
server: https://${KUBERNETES_SERVICE_HOST:-kubernetes.default.svc}:${KUBERNETES_SERVICE_PORT:-443}
|
|
||||||
name: in-cluster
|
|
||||||
contexts:
|
|
||||||
- context:
|
|
||||||
cluster: in-cluster
|
|
||||||
namespace: headlamp-dev
|
|
||||||
user: runner-sa
|
|
||||||
name: in-cluster
|
|
||||||
current-context: in-cluster
|
|
||||||
users:
|
|
||||||
- name: runner-sa
|
|
||||||
user:
|
|
||||||
tokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
||||||
EOF
|
|
||||||
echo "KUBECONFIG=${KUBECONFIG}" >> "$GITHUB_ENV"
|
|
||||||
else
|
|
||||||
echo "::error::No service account token found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "Testing kubectl apply dry-run (no KUBECONFIG set)..."
|
|
||||||
kubectl apply -f deployment/e2e-ci-runner-rbac.yaml --dry-run=server 2>&1 | head -5 || true
|
|
||||||
echo "Testing kubectl apply dry-run with KUBECONFIG=${KUBECONFIG}..."
|
|
||||||
KUBECONFIG=/tmp/kubeconfig-incluster kubectl apply -f deployment/e2e-ci-runner-rbac.yaml --dry-run=server 2>&1 | head -5 || true
|
|
||||||
echo "Testing kubectl auth can-i (no KUBECONFIG)..."
|
|
||||||
kubectl auth can-i create roles -n headlamp-dev 2>&1 || true
|
|
||||||
echo "Testing kubectl auth can-i (with KUBECONFIG)..."
|
|
||||||
KUBECONFIG=/tmp/kubeconfig-incluster kubectl auth can-i create roles -n headlamp-dev 2>&1 || true
|
|
||||||
|
|
||||||
- name: Apply RBAC for E2E pipeline
|
- name: Apply RBAC for E2E pipeline
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
Reference in New Issue
Block a user