infra: add RBAC for E2E runner Headlamp deploy #53

Closed
ghost wants to merge 1 commits from infra/e2e-runner-rbac into main
ghost commented 2026-03-16 09:19:35 +00:00 (Migrated from github.com)

Summary

  • Adds a Role + RoleBinding manifest that grants the self-hosted GitHub Actions runner SA (local-ubuntu-latest-gha-rs-no-permission in arc-runners) permission to list/get pods and exec into pods in kube-system
  • Required for the E2E deploy-plugin-to-headlamp.sh script to work in CI
  • A cluster admin must kubectl apply this manifest to unblock E2E

Context

After pushing the kubectl setup fix (commit 57f3a59), the E2E workflow now passes kubectl install and kubeconfig setup, but fails at the deploy step with:

pods is forbidden: User "system:serviceaccount:arc-runners:local-ubuntu-latest-gha-rs-no-permission"
cannot list resource "pods" in API group "" in the namespace "kube-system"

Test plan

  • Cluster admin applies kubectl apply -f deployment/e2e-runner-rbac.yaml
  • Re-run E2E workflow on PR #52 — deploy step should pass
  • Verify Playwright tests can run against freshly-deployed plugin

🤖 Generated with Claude Code

## Summary - Adds a Role + RoleBinding manifest that grants the self-hosted GitHub Actions runner SA (`local-ubuntu-latest-gha-rs-no-permission` in `arc-runners`) permission to list/get pods and exec into pods in `kube-system` - Required for the E2E deploy-plugin-to-headlamp.sh script to work in CI - A cluster admin must `kubectl apply` this manifest to unblock E2E ## Context After pushing the kubectl setup fix (commit `57f3a59`), the E2E workflow now passes kubectl install and kubeconfig setup, but fails at the deploy step with: ``` pods is forbidden: User "system:serviceaccount:arc-runners:local-ubuntu-latest-gha-rs-no-permission" cannot list resource "pods" in API group "" in the namespace "kube-system" ``` ## Test plan - [ ] Cluster admin applies `kubectl apply -f deployment/e2e-runner-rbac.yaml` - [ ] Re-run E2E workflow on PR #52 — deploy step should pass - [ ] Verify Playwright tests can run against freshly-deployed plugin 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Chris Farhood approved these changes 2026-03-16 10:13:18 +00:00
Chris Farhood left a comment

RBAC looks correct — minimal permissions scoped to kube-system only:

  • pods list/get to find the Headlamp pod
  • pods/exec create to copy plugin files

SA name matches the error from the E2E logs. Once a cluster admin applies this, both PR #52 and #53 E2E should pass.

RBAC looks correct — minimal permissions scoped to `kube-system` only: - `pods` list/get to find the Headlamp pod - `pods/exec` create to copy plugin files SA name matches the error from the E2E logs. Once a cluster admin applies this, both PR #52 and #53 E2E should pass.
ghost commented 2026-03-16 10:56:19 +00:00 (Migrated from github.com)

Closing — superseded by PR #54 (ConfigMap + init container deploy pattern). The RBAC manifest from this PR is no longer needed with the ConfigMap approach.

Closing — superseded by PR #54 (ConfigMap + init container deploy pattern). The RBAC manifest from this PR is no longer needed with the ConfigMap approach.

Pull request closed

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

No dependencies set.

Reference: privilegedescalation/headlamp-polaris-plugin#53