Skip to content

Argo multi-tenancy refactor: AppProjects + Applications per tenant-namespace #106

Description

@uittenbroekrobbert

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions