From e9f3fdc971c835d0bf05d04e5199cfe5a07010b6 Mon Sep 17 00:00:00 2001 From: Hugh Hackman Date: Tue, 17 Mar 2026 12:18:36 +0000 Subject: [PATCH] chore: add RBAC manifest for E2E CI runner Documents the Role and RoleBinding applied to the cluster for the ARC runner service account. Grants permissions in kube-system needed for shared volume plugin deployment (PVCs, pods, Helm resources). Co-Authored-By: Paperclip --- deployment/e2e-ci-runner-rbac.yaml | 53 ++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 deployment/e2e-ci-runner-rbac.yaml diff --git a/deployment/e2e-ci-runner-rbac.yaml b/deployment/e2e-ci-runner-rbac.yaml new file mode 100644 index 0000000..90ee671 --- /dev/null +++ b/deployment/e2e-ci-runner-rbac.yaml @@ -0,0 +1,53 @@ +--- +# 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 permissions in kube-system to: +# - Create/manage PVCs (shared plugin volume) +# - Run temporary pods (plugin deploy helper) +# - Manage Helm release resources (secrets, configmaps, services) +# - Restart deployments (Headlamp rollout after plugin deploy) +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"] + - 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