refactor: replace Dockerfile.e2e with ConfigMap volume mount for E2E plugin loading

Delete custom Docker image approach per board directive. Plugin is now
loaded into stock Headlamp via a ConfigMap volume mount:

- Delete Dockerfile.e2e
- deploy-e2e-headlamp.sh creates a ConfigMap from dist/ and mounts it
  into the stock ghcr.io/headlamp-k8s/headlamp image
- Helm values use extraVolumes/extraVolumeMounts for the ConfigMap
- No custom images, no PVCs, no kubectl exec/cp

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Gandalf the Greybeard
2026-03-20 01:01:28 +00:00
parent 8ac890a1c6
commit 4344d33349
5 changed files with 53 additions and 64 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
# namespace to deploy and tear down a dedicated Headlamp instance via Helm.
#
# No kube-system access needed — E2E tests use a separate namespace.
# No PVC management — plugin is baked into the Docker image.
# Plugin is loaded via ConfigMap volume mount — no custom Docker images.
#
# Prerequisites:
# kubectl create namespace headlamp-e2e
+15 -7
View File
@@ -1,19 +1,17 @@
---
# Headlamp Helm values for E2E testing.
#
# Uses a custom Docker image (built from Dockerfile.e2e) with the plugin
# pre-installed. No PVCs, no volume mounts, no deployment patching.
#
# The E2E workflow builds the image, pushes to ghcr.io, and deploys this
# Helm release in the headlamp-e2e namespace.
# Uses the stock Headlamp image with the plugin loaded via a ConfigMap
# volume mount. No custom Docker images — the plugin dist/ is packaged
# as a ConfigMap by deploy-e2e-headlamp.sh.
#
# Usage:
# helm install headlamp-e2e headlamp/headlamp \
# -n headlamp-e2e --create-namespace \
# -f deployment/headlamp-e2e-values.yaml \
# --set image.registry=ghcr.io \
# --set image.repository=privilegedescalation/headlamp-polaris-e2e \
# --set image.tag=<sha>
# --set image.repository=headlamp-k8s/headlamp \
# --set image.tag=latest
config:
pluginsDir: /headlamp/plugins
@@ -21,3 +19,13 @@ config:
service:
type: ClusterIP
extraVolumes:
- name: polaris-plugin
configMap:
name: headlamp-polaris-plugin
extraVolumeMounts:
- name: polaris-plugin
mountPath: /headlamp/plugins/headlamp-polaris
readOnly: true