T9: Argo CD AppProject RBAC (iac, single-repo) #23
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!23
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "t9-argo-appproject-rbac"
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 #10
What
Per-app Argo CD AppProjects managed from this repo (single-repo redesign; companion flux-clusters PR #1523 only trims the rbac-cm):
argo/gains theargoproj-labs/argocdprovider (v7.16, tested against Argo CD 3.4) and anargocd_projectresource per catalog app (privatebin, syncthing), consuming the T6 input shape (module.app_roles.app_projects).roles[].groups:group-<app>-<capability>→proj:<app>:<capability>(Argo generates theg,lines from these — no rbac-cm churn per project). Root binds to the project's built-in admin role via a role named the T6project_admin_role(admin) withp, proj:<app>:admin, *, *, <app>/*, allowandgroups: [<app>-root].Access
kanidm/scripts/kanidm-login.py— generic RFC 8693 machine login (adapted from vault-login.py): exchanges a Kanidm service-account API token for an id_token of the target OIDC client. Verified end-to-end:iac-vault-t5(argocd_users) API token → id_token (iss/audargocd,argocd_role: ["user"]) →argocd app listand API/api/v1/session/userinfo200. Usable asARGOCD_AUTH_TOKENfor the CLI, orauth_tokenfor the provider.Owner decisions
g, admin, role:adminretained for now (flux PR #1523 keeps it; iac claim_map still emitsadmin). The "global admin replaced" acceptance criterion stays open until the claim_map change.g, user, role:readonlyremoved (deny-by-default).admin) — read-only (user) is enough for validation.Verification
tofu -chdir=argo validatepasses (andtask validateacross roots)scripts/validate-argocd-rbac.sh→passed: 50, failed: 0— offline (renderslocal.projectsviatofu console, asserts withargocd admin settings rbac), wired astask validate-argocd-rbackanidm-login.pymachine flow verified live against the argocd client and API