ci: add cloud native pg to cluster and remove sonarqube
This commit is contained in:
parent
5e77cbecfa
commit
31700dd532
6 changed files with 98 additions and 1 deletions
62
infrastructure/cnpg/helmrelease-cluster.yaml
Normal file
62
infrastructure/cnpg/helmrelease-cluster.yaml
Normal 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
|
||||
16
infrastructure/cnpg/helmrelease-operator.yaml
Normal file
16
infrastructure/cnpg/helmrelease-operator.yaml
Normal 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
|
||||
8
infrastructure/cnpg/helmrepository.yaml
Normal file
8
infrastructure/cnpg/helmrepository.yaml
Normal 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
|
||||
6
infrastructure/cnpg/kustomization.yaml
Normal file
6
infrastructure/cnpg/kustomization.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- helmrepository.yaml
|
||||
- helmrelease-operator.yaml
|
||||
4
infrastructure/cnpg/namespace.yaml
Normal file
4
infrastructure/cnpg/namespace.yaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: cnpg-system
|
||||
|
|
@ -4,4 +4,5 @@ resources:
|
|||
- monitoring/
|
||||
- longhorn/
|
||||
- gitea/
|
||||
- sonarqube/
|
||||
# - sonarqube/
|
||||
- cnpg
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue