T6: Argo CD AppProject roles (catalog input shape) #22
No reviewers
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lab/iac!22
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "t6-argo-app-project-roles"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #8
What
New
argo/root: a data-only module (argo/modules/app_roles) that turnsapps/catalog.yamlinto the per-app Argo CD AppProject-role input shape perADR-0007. No providers, no credentials — pure locals + outputs, so
tofu validate/planrun with zero access keys.The shape exposes, per app:
roles.<capability>— grants as(resource, action, object)triples readyfor policy lines
p, proj:<app>:<role>, <resource>, <action>, <app>/*, allow:viewer/contributor
applications get+logs get, developer+sync,maintainer
+sync+update, live-debuggingexec create.project_admin_role = "admin"— root binds to Argo's built-in project-adminrole.
Capabilities with no Argo grant (secret-managers, k8s-secret-viewer) are
intentionally absent. Live RBAC consumption lands in T9 (flux-clusters).
Also adds
argoto the Taskfile validate loop so the new root is covered bytask validate.Verification
tofu validatepasses inargo/(andtask validateacross all five roots)tofu plan -refresh=falserenders both pilot apps (privatebin, syncthing)with the full ADR-0007 grant set