apiVersion: helm.toolkit.fluxcd.io/v2beta2 # Oder v2beta1 kind: HelmRelease metadata: name: shared-postgres-cluster namespace: cnpg-system # Oder ein anderer Namespace für die Datenbank selbst, z.B. 'database' spec: interval: 10m chart: spec: chart: cluster # Dies ist der Chart für den Cluster selbst # version: "" # Finde die passende Version auf ArtifactHub sourceRef: kind: HelmRepository name: cnpg # Das zuvor definierte Repository namespace: flux-system interval: 1m values: # Cluster Konfiguration # Name des Clusters, der im cnpg-system Namespace erstellt wird name: shared-pg # Anzahl der Instanzen (für Hochverfügbarkeit anpassen) instances: 3 # Storage Konfiguration (Longhorn verwenden, wie in deinen anderen Setups) storage: size: "10Gi" # Gesamtgröße für den Cluster, anpassen nach Bedarf storageClass: "longhorn" # Deine Longhorn StorageClass # PostgreSQL Version (prüfe Kompatibilität mit deinen Anwendungen) # postgresql: # imageName: "ghcr.io/cloudnative-pg/postgresql:15.3" # Beispiel # Wichtig: Konfiguriere Backups! Hier nicht im Detail gezeigt. # backup: # barmanObjectStore: # ... # Monitoring (optional, aber empfohlen) # monitoring: # enablePodMonitor: true # Initiale Datenbanken und Benutzer (optional, kann auch manuell oder per Job erfolgen) # Beachte, dass du für jede Anwendung (Gitea, SonarQube) eigene Datenbanken und Benutzer # in diesem geteilten Cluster benötigst. CloudNativePG kann Benutzer verwalten. # Beispiel für einen initialen Benutzer (NICHT für Anwendungen direkt verwenden, # sondern spezifische Benutzer pro Anwendung erstellen) # bootstrap: # initdb: # database: app_db_1 # Beispiel: Gitea DB # owner: app_user_1 # Beispiel: Gitea User # # Weitere Datenbanken hier # # # Deklarative Rollen/Benutzer # postgresql: # managed: # roles: # - name: gitea_user # # passwordSecret: # Besser ein Secret verwenden # # name: gitea-db-credentials # # key: password # - name: sonarqube_user # # passwordSecret: # # name: sonarqube-db-credentials # # key: password