fix: replace Helm-based E2E deploy with kubectl apply

The Helm chart deployment was consistently failing — the pod enters
CrashLoopBackOff despite identical kubectl manifests working. The Helm
chart also silently ignored extraVolumes/extraVolumeMounts (pnpm-style
keys not supported by the chart), meaning the plugin ConfigMap was
never actually mounted even when deploy appeared to succeed.

Replace with direct kubectl apply using a bash heredoc to render the
manifest with shell variable substitution. This removes the Helm
dependency, fixes the plugin volume mount, and uses the exact
configuration that was proven to work in the cluster.

Also adds explicit initialDelaySeconds/failureThreshold on readiness
and liveness probes to give Headlamp adequate startup time.

Note: .github/workflows/e2e.yaml still has a Setup Helm step that is
now unused — assigned to Hugh Hackman to remove.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Gandalf the Greybeard
2026-03-21 20:43:25 +00:00
parent 4c6324c4c2
commit 65c25067ec
3 changed files with 99 additions and 55 deletions
-34
View File
@@ -1,34 +0,0 @@
---
# Headlamp Helm values for E2E testing.
#
# 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 privilegedescalation-dev \
# -f deployment/headlamp-e2e-values.yaml \
# --set image.registry=ghcr.io \
# --set image.repository=headlamp-k8s/headlamp \
# --set image.tag=latest
config:
pluginsDir: /headlamp/plugins
watchPlugins: false
clusterRoleBinding:
create: false
service:
type: ClusterIP
extraVolumes:
- name: polaris-plugin
configMap:
name: headlamp-polaris-plugin
extraVolumeMounts:
- name: polaris-plugin
mountPath: /headlamp/plugins/headlamp-polaris
readOnly: true