ci: add cloud native pg to cluster and remove sonarqube

This commit is contained in:
Patryk Hegenberg 2025-05-07 21:24:22 +02:00
parent 5e77cbecfa
commit 31700dd532
6 changed files with 98 additions and 1 deletions

View file

@ -0,0 +1,62 @@
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: "<aktuelle-cluster-chart-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

View file

@ -0,0 +1,16 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: cnpg-operator
namespace: cnpg-system
spec:
interval: 10m
chart:
spec:
chart: cloudnative-pg
version: "0.23.2"
sourceRef:
kind: HelmRepository
name: cnpg
namespace: flux-system
interval: 1m

View file

@ -0,0 +1,8 @@
apiVersion: source.toolkit.fluxcd.io/v1beta2 # Oder v1 je nach deiner Flux-Version
kind: HelmRepository
metadata:
name: cnpg
namespace: flux-system
spec:
interval: 1h
url: https://cloudnative-pg.io/charts

View file

@ -0,0 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
- helmrepository.yaml
- helmrelease-operator.yaml

View file

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: cnpg-system

View file

@ -4,4 +4,5 @@ resources:
- monitoring/
- longhorn/
- gitea/
- sonarqube/
# - sonarqube/
- cnpg