Update Verteilungsdiagramm authored by Jvan Fadda's avatar Jvan Fadda
![verteilungsdiagram_v1.drawio.svg](uploads/eff2357f56577e5c5e662bcb5ecede8c/verteilungsdiagram_v1.drawio.svg)
## 脺berblick
Die L枚sung basiert auf einer GitOps-gesteuerte, verteilten Architektur. Alle relevanten Komponenten (Core, Agents, Infrastruktur wie NATS/Postgres, sowie Monitoring) werden zentral im Git-Repository versmoniert 眉ber Fleet automatisch in das Kubernetes-Cluster ausgerollt.
Damit trennen wir fachliche Logik (Core, Agents) von Basisdiensten (Messaging, Datenbank, Monitoring) und erhalten eine klare Struktur inNamespaces.
## Technishe Architektur
### GitOps & Control Plane
- GitRepo (fleet-local): definiert, welche Pfade aus dem `agent-core`-Gitlab-Repo deployt werden.
- Fleet Controller (cattle-fleet-system): 眉berwacht die GitRepo-Definition, rendert Helm-Chats und orchestriert/steuern Abh盲ngigkeit und koordiniert, wann was deployt wird.
- Fleet Agent: spielt die Manifeste in die Ziel-Namespaes ein und reportiert Status zur眉rck.
- Trennung Control Plait <-> Runtime
- Control Plane (Fleet) liegt um Namespace `cattle-fleet-system`.
- Runtime-Services liegen in eigenen Namespaces (core, agents, nats, postgres, monitoring).
### Runtime-Namespaces
- Namespace core: beherbergt den zentralen Core-Service. Als `deployment` ist dieser Service dauerhaft erreichbar, persistiert in Postgres und kommuniziert 眉ber NATS.
- Namespace Agents: enth盲lt die spezialisierten Agenten (noshow, marathon usw.), die periodisch als Cronjobs laufen und nach dem Job wieder heruntergefahren werden (:red_circle: destroyd?)
- Namespace nats: stellt den Message Broker bereit.
- Namespace postgres: verwaltet den Datenbank-State und ist persistent 眉ber PVC (PersistentVolumeClaim).
- Namespace monitoring: erm枚glicht Observability durch Loki/Promtail/Grafana.
### Kommunikationsmuster
- Agents <-> Core: Die Kommunikation 盲hnelt dem RPC-Pattern einfach 眉ber NATS. Die Agents senden einen Request und der Core antwortet darauf. Der Core imitiert keine Kommunikation.
- Core <-> Postgres: klassisches Read/Write mit DB-Connection
- Logging: Promtail sammelt Container-Logs und pusht sie an Loki. Grafana visualisiert die Daten 眉ber Loki als Datasource (ausf眉hrlichere Beschreibung hier zu finden :link: LINK :red_circle:).
\ No newline at end of file