feat: apply base repo

This commit is contained in:
Patryk Hegenberg 2025-05-24 22:22:42 +02:00
parent 28d77db3b1
commit e01ed75fe8
25 changed files with 25 additions and 257 deletions

View file

@ -0,0 +1,14 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: cert-manager
namespace: cert-manager
spec:
chart:
spec:
chart: cert-manager
sourceRef:
kind: HelmRepository
name: cert-manager
values:
installCRDs: true

View file

@ -0,0 +1,8 @@
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: HelmRepository
metadata:
name: cert-manager
namespace: flux-system
spec:
interval: 1h
url: https://charts.jetstack.io

View file

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

View file

@ -1,62 +0,0 @@
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

@ -1,16 +0,0 @@
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

@ -1,8 +0,0 @@
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

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

View file

@ -1,30 +0,0 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: gitea-act-runner
namespace: gitea
spec:
releaseName: gitea-act-runner
interval: 10m
chart:
spec:
chart: gitea-act-runner
version: "0.5.2"
sourceRef:
kind: HelmRepository
name: gitea-charts
namespace: flux-system
values:
provisioning:
enabled: true
# Gitea-URL wie im Cluster erreichbar (interner Service-Name!)
serverURL: "http://gitea-http.gitea.svc.cluster.local:3000"
# Admin-Zugangsdaten wie oben im Gitea-Chart gesetzt
adminUser: "giteaadmin"
# adminPassword: "changeme"
adminPassword: "F3l1x-230113?"
rbac:
create: true
# Optional: Runner-Name, falls du mehrere Runner willst
runner:
labels: ["k3s", "fluxcd"]

View file

@ -1,8 +0,0 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: gitea-charts
namespace: flux-system
spec:
url: https://dl.gitea.io/charts/
interval: 1h

View file

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

View file

@ -1,9 +1,4 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- monitoring/
- longhorn/
- gitea/
# - gitea-runner/
# - sonarqube/
- cnpg
# resources:
# - monitoring/

View file

@ -1,23 +0,0 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: longhorn
namespace: longhorn-system
spec:
releaseName: longhorn
chart:
spec:
chart: longhorn
version: "1.8.1"
sourceRef:
kind: HelmRepository
name: longhorn
namespace: flux-system
interval: 5m
install:
createNamespace: true
values:
defaultSettings:
defaultReplicaCount: 2
persistence:
defaultClassReplicaCount: 2

View file

@ -1,8 +0,0 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: longhorn
namespace: flux-system
spec:
url: https://charts.longhorn.io
interval: 10m

View file

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

View file

@ -1,19 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: longhorn-ui
namespace: longhorn-system
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: longhorn.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: longhorn-frontend
port:
number: 80

View file

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

View file

@ -1,35 +0,0 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: sonarqube
namespace: sonarqube
spec:
interval: 10m
chart:
spec:
chart: sonarqube
version: "2025.2.0"
sourceRef:
kind: HelmRepository
name: sonarqube
namespace: flux-system
values:
community:
enabled: true
monitoringPasscode: "supersecret123"
persistence:
enabled: true
storageClass: longhorn
size: 5Gi
postgresql:
enabled: true
persistence:
enabled: true
storageClass: longhorn
size: 2Gi
ingress:
enabled: true
hosts:
- name: sonarqube.local
path: /
ingressClassName: traefik

View file

@ -1,8 +0,0 @@
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: sonarqube
namespace: flux-system
spec:
url: https://SonarSource.github.io/helm-chart-sonarqube
interval: 1h

View file

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

View file

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