Files
Wabenhain/k8s/03-postgres.yaml
T
Nick SzaunigandClaude Opus 5.5 7698d4cef3 chore(k8s): CPU- und Speicher-Reservierung entfernen
Requests stehen explizit auf 0 statt zu fehlen, weil Kubernetes einen
fehlenden Request auf das Limit setzt und dann noch mehr reserviert.
Die Limits bleiben als Obergrenze.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-10 04:08:40 +02:00

73 lines
1.9 KiB
YAML

# Standard-Datenbank (DATABASE_PROVIDER=postgresql in 01-configmap.yaml).
# Nur anwenden, wenn du Postgres nutzt — fuer MySQL stattdessen 03-mysql.yaml
# anwenden (nicht beide gleichzeitig).
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: wabenhain-postgres
namespace: wabenhain
spec:
serviceName: wabenhain-postgres
replicas: 1
selector:
matchLabels:
app: wabenhain-postgres
template:
metadata:
labels:
app: wabenhain-postgres
spec:
containers:
- name: postgres
image: postgres:16.15-alpine
ports:
- containerPort: 5432
env:
- name: POSTGRES_USER
value: wabenhain
- name: POSTGRES_DB
value: wabenhain
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: wabenhain-secrets
key: DB_PASSWORD
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
readinessProbe:
exec:
command: ["pg_isready", "-U", "wabenhain"]
initialDelaySeconds: 5
periodSeconds: 5
resources:
requests:
cpu: "0"
memory: "0"
limits:
memory: 512Mi
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
# Bei Bedarf anpassen — abhaengig vom StorageClass deines Clusters.
storage: 5Gi
---
apiVersion: v1
kind: Service
metadata:
name: wabenhain-postgres
namespace: wabenhain
spec:
# Headless (kein eigener ClusterIP) — Standard fuer StatefulSets, DNS-Name
# "wabenhain-postgres.wabenhain.svc.cluster.local" bleibt stabil.
clusterIP: None
selector:
app: wabenhain-postgres
ports:
- port: 5432
targetPort: 5432