# 🚀 Argo-CD Installation & SSO Konfiguration Diese Dokumentation beschreibt die Installation von Argo CD im Homelab mit Fokus auf SSO (Authentik) und automatisierte Secret-Verwaltung. ## 📦 1. Vorbereitung & Installation Zuerst muss das Repository hinzugefügt und die Basis-Ressourcen (Namespace & Gateway) erstellt werden: ```bash # Repo hinzufügen helm repo add argo https://argoproj.github.io/argo-helm helm repo update # Vorbereitungen treffen (Gateway & Namespace) kubectl apply -f argo-prepare.yaml # Installation via Helm helm upgrade --install argocd argo/argo-cd --namespace argocd -f argo-values.yaml ``` --- ## 🔐 2. SSO Integration (Authentik) Die Authentifizierung erfolgt über **Authentik** via **OIDC**. ### Konfiguration in `argo-values.yaml`: - **Dex** ist als interner Connector vorkonfiguriert. - Die Gruppen `ArgoCD Admins` und `ArgoCD Viewers` werden direkt aus Authentik übernommen. ### RBAC (Rechteverwaltung): | Authentik Gruppe | Argo CD Rolle | Beschreibung | | :--- | :--- | :--- | | `ArgoCD Admins` | `role:admin` | Voller Zugriff auf alle Cluster-Ressourcen 👑 | | `ArgoCD Viewers` | `role:readonly` | Nur Lesezugriff auf Applikationen 👁️ | --- ## 🔑 3. Secret Management (Phase) Wir nutzen **Phase** (`secrets.phase.dev`), um sensible Daten wie OIDC-Secrets und Git-Credentials sicher in den Cluster zu synchronisieren. - Der `PhaseSecret` Operator überwacht die Ressource `argocd-phase-secret`. - Erstellt automatisch das Kubernetes Secret `argocd-authentik-client-secret`. - Die Variablen `$AUTHENTIK_CLIENT_ID` und `$AUTHENTIK_CLIENT_SECRET` werden zur Laufzeit in Dex injiziert. --- ## 🌐 4. Networking (Gateway API) Die Erreichbarkeit wird über das **Envoy Gateway** gesteuert: - **Hostname:** `argocd.k8s.hnrx.net` - **Infrastruktur:** Nutzt `HTTPRoute` für das Web-UI (Port 80) und `GRPCRoute` für CLI/API Kommunikation (Port 443). - **TLS:** Zertifikate werden automatisch via Cert-Manager (Cloudflare DNS-01) erstellt. --- ## ⚡ 5. Performance & Stabilität Um Abstürze des `repo-server` zu vermeiden, wurden explizite Ressourcen-Limits gesetzt: - **Repo-Server:** 512Mi Memory / 500m CPU - **Controller:** 1Gi Memory / 500m CPU --- *Zuletzt aktualisiert am 06. März 2026 von Gemini CLI*