Files
rke2-single-node/07_bootstrap_argocd/00_installation_instructions.md
T

2.6 KiB

🎡 ArgoCD Bootstrapping (App-of-Apps)

Diese Sektion beschreibt den Übergang von der manuellen Installation zur vollautomatischen GitOps-Verwaltung des gesamten Clusters.

🏗️ 1. Das Konzept

Wir nutzen das Bootstrap-Prinzip, um ArgoCD anzuweisen, sich selbst und alle anderen Applikationen zu verwalten. Sobald die Bootstrap-Ressourcen angewendet werden, scannt ArgoCD das Repository und rollt die definierten Stacks automatisch aus.

📊 Architektur-Übersicht

graph TD
    Root[ArgoCD Bootstrap] --> |Deploy| AS1[ApplicationSet: Cluster Infra]
    Root --> |Deploy| AS2[ApplicationSet: Homelab Apps]
    
    AS1 --> |Scans 08_cluster_infrastructure/*| AppInfra[Core Tools: Monitoring, VPA, etc.]
    AS2 --> |Scans 09_homelab_apps/*| AppHome[User Apps: Immich, Ghostfolio, etc.]
    
    subgraph "Git Repository"
        D8[Verzeichnis 08]
        D9[Verzeichnis 09]
    end
    
    AS1 -.-> D8
    AS2 -.-> D9

🛠️ 2. Bootstrap Komponenten

📂 Projekte (argocd-project-*.yaml)

Bevor Applikationen erstellt werden können, müssen die logischen Gruppierungen (Projects) in ArgoCD vorhanden sein:

  • cluster-infra: Für systemnahe Tools.
  • homelab: Für Benutzer-Applikationen.

🤖 Automatisierung (ApplicationSets)

Wir nutzen ApplicationSet-Ressourcen, um Applikationen dynamisch basierend auf der Verzeichnisstruktur im Git zu erstellen:

  • argocd-apps.yaml: Übernimmt alle Ordner aus 08_cluster_infrastructure/.
  • homelab-apps.yaml: Übernimmt alle Ordner aus 09_homelab_apps/.

🚀 Shared Gateways

In diesem Verzeichnis werden auch die zentralen Gateways definiert, die von allen Applikationen gemeinsam genutzt werden:

  • shared-gateway.yaml: Interner Traffic (*.k8s.hnrx.net).
  • shared-external-gateway.yaml: Externer Traffic (*.hnrx.net).

🚀 3. Ausführung (Bootstrapping)

Um das Bootstrapping zu starten, werden alle Ressourcen in diesem Ordner einmalig manuell auf den Cluster angewendet:

# 1. Projekte erstellen
kubectl apply -f argocd-project-cluster-infra.yaml
kubectl apply -f argocd-project-homelab.yaml

# 2. Shared Gateways bereitstellen
kubectl apply -f shared-gateway.yaml
kubectl apply -f shared-external-gateway.yaml

# 3. ApplicationSets aktivieren (Der "Magic" Moment)
kubectl apply -f argocd-apps.yaml
kubectl apply -f homelab-apps.yaml

Ab diesem Zeitpunkt übernimmt ArgoCD die Kontrolle. Jedes neue Verzeichnis in 08_ oder 09_ wird automatisch als neue Applikation erkannt und deployed. 🚀


Zuletzt aktualisiert am 06. März 2026 von Gemini CLI