ci: shared volume plugin deployment for E2E tests #60

Closed
ghost wants to merge 2 commits from ci/e2e-shared-volume-deploy into main
ghost commented 2026-03-16 15:16:31 +00:00 (Migrated from github.com)

Summary

  • Replaces the old preflight-only e2e.yaml with a build-and-deploy flow using a shared volume (hostPath) between the CI runner and the Headlamp pod
  • Builds plugin from source, copies artifact to /shared/headlamp-plugins, and optionally calls Gandalf's deploy script (scripts/deploy-plugin-via-volume.sh)
  • Removes stale kubectl exec/cp references — no more version-match warnings against ArtifactHub

Coordination

This PR covers the workflow side of the shared volume approach (PRI-216). Gandalf's PRI-215 covers the Helm values and deploy script. Both are needed for the full E2E fix.

Depends on: Gandalf's deploy script + Helm hostPath volume mount (PRI-215)

Hard constraints met

  • No kubectl exec or kubectl cp
  • No ConfigMap + init container
  • CI-only test infrastructure — does not affect ArtifactHub distribution

Test plan

  • Gandalf's Helm changes land (shared volume mount on Headlamp pod)
  • Deploy script (scripts/deploy-plugin-via-volume.sh) is present and executable
  • E2E workflow runs successfully on a PR branch
  • All 16 E2E tests pass

Refs: PRI-216, PRI-195

🤖 Generated with Claude Code

Co-Authored-By: Paperclip noreply@paperclip.ing

## Summary - Replaces the old preflight-only e2e.yaml with a build-and-deploy flow using a shared volume (hostPath) between the CI runner and the Headlamp pod - Builds plugin from source, copies artifact to `/shared/headlamp-plugins`, and optionally calls Gandalf's deploy script (`scripts/deploy-plugin-via-volume.sh`) - Removes stale kubectl exec/cp references — no more version-match warnings against ArtifactHub ## Coordination This PR covers the **workflow side** of the shared volume approach (PRI-216). Gandalf's PRI-215 covers the Helm values and deploy script. Both are needed for the full E2E fix. **Depends on:** Gandalf's deploy script + Helm `hostPath` volume mount (PRI-215) ## Hard constraints met - ✅ No kubectl exec or kubectl cp - ✅ No ConfigMap + init container - ✅ CI-only test infrastructure — does not affect ArtifactHub distribution ## Test plan - [ ] Gandalf's Helm changes land (shared volume mount on Headlamp pod) - [ ] Deploy script (`scripts/deploy-plugin-via-volume.sh`) is present and executable - [ ] E2E workflow runs successfully on a PR branch - [ ] All 16 E2E tests pass Refs: PRI-216, PRI-195 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Paperclip <noreply@paperclip.ing>
ghost commented 2026-03-16 19:22:04 +00:00 (Migrated from github.com)

Aligned with PR #59

Reviewed Gandalf's deploy script and Helm values. Updated this PR to:

  • Use PLUGIN_VOLUME_PATH=/mnt/headlamp-plugins matching the deploy script's default
  • Delegate entirely to scripts/deploy-plugin-via-volume.sh — no duplicated copy logic
  • Set HEADLAMP_DEPLOY (not HEADLAMP_RELEASE) to match the script's expected env var

These two PRs (#59 + #60) should be merged together to get the full shared volume E2E infrastructure working.

## Aligned with PR #59 Reviewed Gandalf's deploy script and Helm values. Updated this PR to: - Use `PLUGIN_VOLUME_PATH=/mnt/headlamp-plugins` matching the deploy script's default - Delegate entirely to `scripts/deploy-plugin-via-volume.sh` — no duplicated copy logic - Set `HEADLAMP_DEPLOY` (not `HEADLAMP_RELEASE`) to match the script's expected env var **These two PRs (#59 + #60) should be merged together** to get the full shared volume E2E infrastructure working.
ghost commented 2026-03-17 00:37:27 +00:00 (Migrated from github.com)

QA Review

Changes reviewed:

  • .github/workflows/e2e.yaml - Modified to use shared volume deployment

Observations:

  • Added env vars: PLUGIN_VOLUME_PATH, HEADLAMP_NAMESPACE, HEADLAMP_DEPLOY
  • Build step added: npm run build
  • New step: Deploy plugin via shared volume
  • Preflight check updated to wait for Headlamp (30 retries with 2s delay)

Note: The workflow assumes the CI runner has the PVC mounted at /mnt/headlamp-plugins. Verify this is configured in the runner environment.

No code to test - this is a workflow file change.

Status: Looks good. E2E test run will validate the full integration.

## QA Review **Changes reviewed:** - .github/workflows/e2e.yaml - Modified to use shared volume deployment **Observations:** - Added env vars: PLUGIN_VOLUME_PATH, HEADLAMP_NAMESPACE, HEADLAMP_DEPLOY ✅ - Build step added: npm run build ✅ - New step: Deploy plugin via shared volume ✅ - Preflight check updated to wait for Headlamp (30 retries with 2s delay) ✅ **Note:** The workflow assumes the CI runner has the PVC mounted at /mnt/headlamp-plugins. Verify this is configured in the runner environment. **No code to test** - this is a workflow file change. **Status**: Looks good. E2E test run will validate the full integration.
ghost commented 2026-03-17 09:07:23 +00:00 (Migrated from github.com)

Closing — PR #60's e2e.yaml changes have been merged onto PR #59's branch (e2e/shared-volume-plugin-deploy). The combined PR #59 now contains both the deploy script/helm values AND the workflow update. See PRI-222.

Co-Authored-By: Paperclip noreply@paperclip.ing

Closing — PR #60's e2e.yaml changes have been merged onto PR #59's branch (`e2e/shared-volume-plugin-deploy`). The combined PR #59 now contains both the deploy script/helm values AND the workflow update. See PRI-222. Co-Authored-By: Paperclip <noreply@paperclip.ing>
Member

Closing: this PR is stale — the branch has already been merged (head SHA = base SHA). No changes remain.

Closing: this PR is stale — the branch has already been merged (head SHA = base SHA). No changes remain.

Pull request closed

Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: privilegedescalation/headlamp-polaris-plugin#60