Kostenlose DevOps-Analyse
Zurück zum Glossar
DevOps Glossar·CI/CD·Zuletzt geprüft

App-of-Apps Pattern

// Direkte Antwort

Was ist das App-of-Apps-Pattern in ArgoCD?

App-of-Apps ist eine ArgoCD-Application, die selbst weitere ArgoCD-Applications verwaltet. Damit lassen sich ganze Cluster (inklusive Plattform-Komponenten wie Ingress, Cert-Manager, Monitoring und Workloads) deklarativ über ein einziges Root-Repository ausrollen. Das eignet sich besonders für Cluster-Bootstrapping und Multi-Cluster-Setups. Sync-Waves steuern dabei die Reihenfolge: zuerst CRDs, dann Operatoren, dann Custom Resources.

Auch bekannt als: App of Apps · Argo CD App-of-Apps · App-of-Apps

// Kurz gefragt1 Klick, anonym

Ist App-of-Apps Pattern bei Ihnen gerade ein Thema?

Wir fragen kurz, wie dringend das Thema bei Ihnen gerade ist. Je nach Antwort zeigen wir Ihnen direkt den passenden nächsten Schritt — ganz ohne Formular.

// Im DetailApp-of-Apps Pattern

Die Root-Application zeigt auf ein Verzeichnis im Git-Repository, das ausschließlich Application-Manifeste enthält. ArgoCD synchronisiert dieses Verzeichnis wie jedes andere und legt dabei die Kind-Applications im Cluster an. Jede Kind-Application zeigt wiederum auf ihr eigenes Verzeichnis und rollt dort die eigentlichen Workloads aus. Eine neue Anwendung kommt also als weitere Manifest-Datei in das Root-Verzeichnis, und nach dem nächsten Sync existiert sie.

Den größten Nutzen bringt das Muster beim Cluster-Bootstrapping, also der Erstbestückung eines leeren Clusters. Eine einzige Root-Application installiert Ingress-Controller, Cert-Manager, Monitoring und die Geschäftsanwendungen. Was früher eine Woche Einrichtungsarbeit pro Standort bedeutete, ist dann ein einziger Commit, und der neue Werks-Cluster steht. Bei mehreren Werken entstehen so Umgebungen, die nachweislich aus demselben Repository-Stand stammen.

Die Reihenfolge steuern Sync-Waves. Plattform-Komponenten müssen existieren, bevor Workloads sie brauchen, also zuerst die Custom Resource Definitions (CRDs), dann die Operatoren, dann die Custom Resources, die diese Operatoren verarbeiten. Die Annotation argocd.argoproj.io/sync-wave legt die Abfolge als Ganzzahl fest, niedrigere Werte laufen zuerst. Zwischen Applications greifen die Waves allerdings nur, wenn ArgoCD deren Health-Status auswertet. Diese Prüfung ist für den Ressourcentyp Application seit ArgoCD 1.8 abgeschaltet und muss per Lua-Health-Check in der ConfigMap argocd-cm wieder eingeschaltet werden. Fehlt dieser Schritt, startet die nächste Wave, bevor die vorige wirklich bereit ist.

Zwei Stolpersteine betreffen große Setups. Bei mehreren Verschachtelungsebenen verliert man leicht den Überblick, welche Application woher gesteuert wird. Für viele gleichartige Applications ist ApplicationSet deshalb meist wartungsärmer. Der zweite betrifft Rechte. Wer in das Repository der Root-Application schreiben darf, kann Applications in beliebigen ArgoCD-Projekten anlegen. Die ArgoCD-Dokumentation behandelt das als Admin-Recht, entsprechend eng gehört der Push-Zugriff auf dieses Repository begrenzt.

// Beispiele aus der Praxis2 Szenarien
/01

Neuer Produktions-Cluster mit einem Commit

Ein weiterer Produktions-Cluster soll so aussehen wie die bestehenden, bisher arbeitete das Team dafür eine Checkliste ab. Jetzt legt es eine einzige Root-Application an. Ingress, Cert-Manager, Prometheus und alle Workloads entstehen automatisch in der per Sync-Waves festgelegten Reihenfolge, und der Cluster gleicht seinen Vorgängern bis auf die standortspezifischen Werte.

/02

Plattform-Team und Produkt-Teams blockieren sich nicht mehr

Plattform-Team und Produkt-Teams pflegten ihre Manifeste bisher im selben Repository und warteten gegenseitig auf Reviews. Eine Root-Application verwaltet jetzt eine Plattform-Application mit Operatoren und CRDs sowie mehrere Team-Applications, die auf getrennte Repositories zeigen. Jedes Team merged in seinem eigenen Takt.

// Welcher Weg passt?App-of-Apps Pattern
// In 2 Klicks: App-of-Apps oder ApplicationSet?Schritt 1 / 2

Wie skalieren Sie ArgoCD am besten?

App-of-Apps und ApplicationSet lösen dasselbe Grundproblem — viele Apps verwalten — auf unterschiedliche Weise. Zwei Klicks zeigen, welches Muster zu Ihrer Struktur passt.

Wie sind Ihre Deployments strukturiert?

// Häufige FragenFAQ
App-of-Apps oder ApplicationSet: Was ist der Unterschied?
App-of-Apps verwaltet explizit definierte Kind-Applications über eine Root-Application, ApplicationSet generiert Applications dynamisch aus einem Generator. App-of-Apps passt zu statischen, bewusst gepflegten Setups wie dem Cluster-Bootstrapping, bei dem jede Kind-Application ihre eigene Konfiguration hat. ApplicationSet ist die bessere Wahl, sobald viele gleichartige Applications automatisch entstehen sollen, etwa pro Cluster, pro Verzeichnis oder pro Pull Request.
Was passiert, wenn ich eine Kind-Application aus dem Root-Verzeichnis entferne?
Ist für die Root-Application Pruning aktiv, löscht ArgoCD beim nächsten Sync auch die Kind-Application. Ob deren Workloads mitgelöscht werden, entscheidet der Finalizer resources-finalizer.argocd.argoproj.io an der Kind-Application. Mit Finalizer räumt ArgoCD Deployments, Services und alle übrigen Ressourcen ab, ohne ihn laufen sie im Cluster weiter. Prüfen Sie das vor dem ersten Aufräumen, nicht danach.
Kann eine Kind-Application wiederum App-of-Apps sein?
Ja, Verschachtelung ist möglich und in großen Organisationen üblich, um Verantwortlichkeiten zu trennen. Mit jeder Ebene wird aber schwerer nachvollziehbar, welche Application woher kommt. Zwei Ebenen reichen in den meisten Setups.
// Ihre Einschätzung1 Klick, anonym

Wo steht Ihr Team bei App-of-Apps Pattern?

Uns interessiert, wo Ihr Team bei diesem Thema steht. Auf Basis Ihrer Antwort schlagen wir Ihnen den sinnvollsten nächsten Schritt vor — ganz ohne Formular.

// Quellen und Referenzen3 Quellen

Weiterführende Primärquellen zu App-of-Apps Pattern: Normtexte, Hersteller- und Projektdokumentation. Alle Ziele öffnen in einem neuen Tab.

// Nächster Schritt

Erstgespräch.
Kostenlos.
90 Tage zum Ergebnis.

Wir klären gemeinsam, wie Sie in 90 Tagen die ersten messbaren Industrial-DevOps-Erfolge erzielen.

Erstgespräch buchen
Seit 2006 · 47+ Projekte
Industrie · Automotive · Finance