Skip to content

feat(009): fleet placement RBAC for the control-plane pod#62

Merged
bartekus merged 1 commit into
mainfrom
011-fleet-rbac
Jul 22, 2026
Merged

feat(009): fleet placement RBAC for the control-plane pod#62
bartekus merged 1 commit into
mainfrom
011-fleet-rbac

Conversation

@bartekus

Copy link
Copy Markdown
Contributor

Spec 011's acceptance walk surfaced that the pod ran as the namespace default ServiceAccount with no cluster grants, so every fleet placement and teardown died Forbidden at the API server (the rebuilt cluster never carried grants; spec 006's first-deploy finding predates the rebuild).

Adds rbac.yaml to the statecraft manifests: a dedicated statecraft ServiceAccount, a statecraft-fleet ClusterRole scoped to exactly the resource types fleet-native touches (namespaces get/list/create; deployments, services, PVCs, jobs, ingresses, networkpolicies full lifecycle), and its ClusterRoleBinding. The Deployment's pod template adopts the ServiceAccount. ClusterRole because tenant namespaces (t-<tenantId>) are dynamic. Paired with a dated amendment in spec 009.

Spec 011's acceptance walk surfaced that the pod ran as the namespace
default ServiceAccount with no cluster grants, so fleet placement and
teardown died Forbidden at the API server. Adds the statecraft
ServiceAccount, the statecraft-fleet ClusterRole scoped to the resource
types fleet-native touches, and its binding; the pod template adopts
the ServiceAccount.
@bartekus
bartekus merged commit bfcb4a7 into main Jul 22, 2026
2 checks passed
@bartekus
bartekus deleted the 011-fleet-rbac branch July 22, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant