Skip to content
🟡In Arbeit48%
Vollständigkeit:
60%
Korrektheit:
60%
⏳ Noch nicht geprüft

Zielbild und Infrastrukturübersicht

Dieses Dokument beschreibt die Zielarchitektur des CIVITAS/CORE-V2-Serveraufbaus auf dem Proxmox-Knoten civitas im SOHO-Cluster.

Abgrenzung zu V1

CIVITAS/CORE V2 unterscheidet sich grundlegend von V1:

AspektCIVITAS/CORE V1CIVITAS/CORE V2
Deployment-Werkzeugcc_cli (Python, Ansible)helmfile + Helm
Deployment-QuelleMonorepo mit Ansible-PlaybooksSeparates Deployment-Repository
Konfigurationcc_cli_inventory.yml (Ansible-Inventory)global.yaml.gotmpl + Umgebungs-Overrides
Komponenten-ManagementAnsible-Rollen14 Helm-Charts via helmfile
Ingress-Standardnginx (traefik deaktiviert)nginx
Service MeshKeinesLinkerd (optional, offener Punkt)
Namespace-StrategieEin Namespace (civitas-core)Single Namespace via instanceSlug

Hinweis: Die V1-Spezifikation bleibt unter serveraufbau-v1/ erhalten und wird bis zur vollständigen Ablösung parallel gepflegt. Ein koordinierter Wechsel von V1 auf V2 ist Gegenstand einer separaten Migrationsplanung.

Infrastrukturübersicht

Die gesamte CIVITAS/CORE-V2-Plattform wird in einer dedizierten virtuellen Maschine (VM) auf dem Proxmox-Knoten civitas betrieben. Die VM ist nicht direkt aus dem Internet erreichbar, sondern ausschließlich über die bestehende OPNsense-Firewall mit Caddy als Reverse-Proxy:

Internet


OPNsense + Caddy (Reverse-Proxy, TLS-Terminierung)

    │ WireGuard-Tunnel (10.10.10.0/24)

CIVITAS/CORE-VM (192.168.12.x / 10.10.10.5)

    ├── k3s (Single-Node, SQLite)
    │   ├── nginx-Ingress (Port 8080 HTTP, kein HTTPS)
    │   ├── cert-manager + selfsigned-ca ClusterIssuer
    │   └── Helmfile-Deployment (Namespace: <instanceSlug>)

    └── WireGuard-Client (wg0)

Netzwerk

KomponenteIP / AdresseBemerkung
CIVITAS/CORE-VM (LAN)192.168.12.x (statisch)SOHO-VLAN, kein direkter Internetzugriff
CIVITAS/CORE-VM (WireGuard)10.10.10.5/24Tunnel zu OPNsense
OPNsense (WireGuard)10.10.10.1Gegenstelle des Tunnels
DNS (öffentlich)idm.udp.data-dna.eu, portal.udp.data-dna.euZeigen auf OPNsense-IP
Caddy (OPNsense)Port 443 → Weiterleitung an 10.10.10.5:8080TLS-Terminierung

TLS-Strategie

  • TLS endet an Caddy auf OPNsense. Die VM selbst hat kein öffentliches HTTPS-Zertifikat.
  • nginx-Ingress in der VM: ssl-redirect: false (kein HTTP→HTTPS-Redirect innerhalb der VM).
  • cert-manager wird installiert, aber mit selfsigned-ca als ClusterIssuer (für interne Zertifikatszwecke). Kein letsencrypt-Issuer in der VM.
  • Caddy bezieht sein TLS-Zertifikat per Let's Encrypt (bestehende Infrastruktur).

Komponenten

CIVITAS/CORE V2 besteht aus 14 Komponenten, die via Helmfile orchestriert werden:

KomponenteZweck
prepareCluster-Vorbereitung (CRDs, Namespace-Labels)
secretsSecret-Generierung für alle Komponenten
postgresPostgreSQL-Datenbank (CloudNativePG-Operator)
etcdETCD-Key-Value-Store
kafkaApache Kafka (Strimzi-Operator)
keycloakIdentity & Access Management
apisixAPI-Gateway
apicurioSchema Registry
model-atlasEMF-Modellmanagement
redpanda-connectData-Streaming-Pipelines
portalWeb-UI und Backend-API
config-adaptersKonfigurationsmanagement
opaOpen Policy Agent
authz-repoAutorisierungs-Repository

Diese Komponenten werden als Helm-Charts über das zentrale Deployment-Repository bezogen. Die Konfiguration erfolgt über Umgebungs-spezifische global.yaml.gotmpl-Dateien.

Offene Punkte

PunktStatusEntscheidung bei
Linkerd Service MeshOffen – optional, aber empfohlen; Installation und Konfiguration ist noch nicht spezifiziertArchitekturentscheidung
Profil (development / production)Offen – beeinflusst Ressourcen, Replicas und Logging-LevelBetriebsentscheidung
Multi-Node vs. Single-Node k3sVorerst Single-Node (wie V1)Architekturentscheidung

Nichtziele

  • Keine Migration bestehender V1-Installationen – V2 wird parallel aufgesetzt.
  • Kein Multi-Node-Cluster in dieser Ausbaustufe.
  • Kein öffentlicher Zugang zur VM ohne OPNsense/Caddy.
  • Keine HTTPS-Terminierung innerhalb der VM.