--- # RBAC for the GitHub Actions CI runner to perform E2E test setup. # CI-only test fixture — NOT for production use. # # Grants the ARC runner service account namespace-scoped permissions in # kube-system to patch the Headlamp deployment (add shared volume mount), # manage PVCs, run temporary pods, and restart deployments. # # No cluster-scoped permissions needed — the E2E workflow uses kubectl patch # instead of helm upgrade, avoiding the need to read ClusterRole/ClusterRoleBinding. # # Apply with: kubectl apply -f deployment/e2e-ci-runner-rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: e2e-ci-runner namespace: kube-system rules: - apiGroups: [""] resources: ["persistentvolumeclaims"] verbs: ["get", "list", "create", "update", "patch", "delete"] - apiGroups: [""] resources: ["pods"] verbs: ["get", "list", "create", "delete", "watch"] - apiGroups: [""] resources: ["pods/attach"] verbs: ["create", "get"] - apiGroups: ["apps"] resources: ["deployments"] verbs: ["get", "list", "patch", "watch"] - apiGroups: ["apps"] resources: ["deployments/scale"] verbs: ["patch"] - apiGroups: [""] resources: ["secrets"] verbs: ["get", "list", "create", "update", "patch", "delete"] - apiGroups: [""] resources: ["configmaps"] verbs: ["get", "list", "create", "update", "patch", "delete"] - apiGroups: [""] resources: ["services"] verbs: ["get", "list", "create", "update", "patch", "delete"] - apiGroups: [""] resources: ["serviceaccounts"] verbs: ["get", "list"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: e2e-ci-runner-binding namespace: kube-system subjects: - kind: ServiceAccount name: local-ubuntu-latest-gha-rs-no-permission namespace: arc-runners roleRef: kind: Role name: e2e-ci-runner apiGroup: rbac.authorization.k8s.io