Context
Tijdens PR #78 review opgekomen: alle platform-componenten (Argo, OPI, Keycloak, MinIO, Postgres, Redis, Prometheus) + alle per-tenant AppProjects + tenant-Applications leven in één namespace (rig-prd-operations). Dat geeft:
- Hoge blast radius bij namespace-incident
- Veel "orphaned resource" ruis in Argo
- Brede RBAC op één plek
- Een "user-applications" monolitic Application die alle tenant-resources via één sync regelt
Voorstel
Migreer naar Argo multi-tenancy pattern:
- Per-tenant
AppProject + Application CRs in de tenant-namespace (rig-prd-{tenant}), niet in rig-prd-operations
- Argo controller
application.namespaces config uitbreiden met rig-prd-*
- OPI's
argocd-application.yaml.jinja en argocd-appproject.yaml.jinja templates render naar tenant-namespace
- Drop monolithic
user-applications Application — vervang door per-tenant Apps
- Migratie-script voor bestaande tenants
Wat erbij komt
- Schonere RBAC (tenant-admin ziet alleen eigen App)
- Kleinere blast radius per tenant
- Minder orphaned ruis in platform-AppProject
- Beter aligned met Argo's eigen multi-tenancy aanbevelingen
Buiten scope
Splitsing van platform-componenten zelf (Argo + OPI + Keycloak in eigen namespaces) — apart issue.
Bron
Discussie tijdens PR #78 review.
Context
Tijdens PR #78 review opgekomen: alle platform-componenten (Argo, OPI, Keycloak, MinIO, Postgres, Redis, Prometheus) + alle per-tenant AppProjects + tenant-Applications leven in één namespace (
rig-prd-operations). Dat geeft:Voorstel
Migreer naar Argo multi-tenancy pattern:
AppProject+ApplicationCRs in de tenant-namespace (rig-prd-{tenant}), niet inrig-prd-operationsapplication.namespacesconfig uitbreiden metrig-prd-*argocd-application.yaml.jinjaenargocd-appproject.yaml.jinjatemplates render naar tenant-namespaceuser-applicationsApplication — vervang door per-tenant AppsWat erbij komt
Buiten scope
Splitsing van platform-componenten zelf (Argo + OPI + Keycloak in eigen namespaces) — apart issue.
Bron
Discussie tijdens PR #78 review.