# image: unten mit der tatsaechlichen Registry/Tag aus der Gitea-Actions- # Pipeline ersetzen (das schlanke Laufzeit-Image, NICHT ":migrate-..."). # Vor dem ersten Rollout einmal den Migrations-Job (04-migrate-job.yaml) # erfolgreich durchlaufen lassen, sonst startet die App gegen eine leere, # ungemigrateet Datenbank. apiVersion: apps/v1 kind: Deployment metadata: name: wabenhain-app namespace: wabenhain spec: # ACHTUNG bevor du hochskalierst: lib/rate-limit.ts haelt Login-/2FA-/ # Checkout-Limits aktuell im Prozessspeicher, nicht in einem gemeinsamen # Store. Mit replicas > 1 verteilt sich derselbe Nutzer per Load-Balancing # auf mehrere Prozesse mit je eigenem Zaehler — das Limit wird effektiv um # den Skalierungsfaktor schwaecher (2 Replicas = 2x mehr Versuche moeglich), # ohne dass das im Frontend sichtbar waere. Fuer replicas > 1 zuerst # lib/rate-limit.ts auf einen gemeinsamen Store (z.B. Redis) umstellen. replicas: 1 selector: matchLabels: app: wabenhain-app template: metadata: labels: app: wabenhain-app spec: containers: - name: app image: git.example.com/OWNER/wabenhain:latest ports: - containerPort: 3000 envFrom: - configMapRef: name: wabenhain-config - secretRef: name: wabenhain-secrets readinessProbe: httpGet: path: / port: 3000 initialDelaySeconds: 10 periodSeconds: 10 livenessProbe: httpGet: path: / port: 3000 initialDelaySeconds: 20 periodSeconds: 30 resources: requests: cpu: 100m memory: 256Mi limits: memory: 512Mi --- apiVersion: v1 kind: Service metadata: name: wabenhain-app namespace: wabenhain spec: selector: app: wabenhain-app ports: - port: 80 targetPort: 3000