6189f2b983
Replace the PVC + kubectl-patch approach for E2E plugin deployment with a custom Docker image that has the plugin pre-installed. This eliminates all policy-violating operations: - No PVCs in kube-system - No kubectl exec/cp to Headlamp pods - No deployment patching via kubectl - No temporary pods or ConfigMap-based file transfers The new approach builds a Headlamp image with the plugin baked in (Dockerfile.e2e), deploys it as a dedicated instance in the headlamp-e2e namespace via Helm, and tears it down after tests complete. RBAC is scoped to the headlamp-e2e namespace instead of kube-system. Note: .github/workflows/e2e.yaml still needs updating to use the new scripts — that change is delegated to Hugh (CI/CD owner). Closes: privilegedescalation/headlamp-polaris-plugin#72 Co-Authored-By: Paperclip <noreply@paperclip.ing>
30 lines
887 B
Bash
Executable File
30 lines
887 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# teardown-e2e-headlamp.sh
|
|
#
|
|
# Tears down the dedicated E2E Headlamp instance deployed by deploy-e2e-headlamp.sh.
|
|
#
|
|
# Environment:
|
|
# E2E_NAMESPACE — namespace to clean up (default: headlamp-e2e)
|
|
# E2E_RELEASE — Helm release to uninstall (default: headlamp-e2e)
|
|
set -euo pipefail
|
|
|
|
REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
|
|
E2E_NAMESPACE="${E2E_NAMESPACE:-headlamp-e2e}"
|
|
E2E_RELEASE="${E2E_RELEASE:-headlamp-e2e}"
|
|
|
|
echo "=== E2E Headlamp Teardown ==="
|
|
echo " Namespace: $E2E_NAMESPACE"
|
|
echo " Release: $E2E_RELEASE"
|
|
|
|
echo "Uninstalling Helm release..."
|
|
helm uninstall "$E2E_RELEASE" -n "$E2E_NAMESPACE" 2>/dev/null || echo "Release not found (already removed?)"
|
|
|
|
echo "Deleting namespace..."
|
|
kubectl delete namespace "$E2E_NAMESPACE" --ignore-not-found --wait=false
|
|
|
|
# Clean up local env file
|
|
rm -f "$REPO_ROOT/.env.e2e"
|
|
|
|
echo "Teardown complete."
|