# Självhostad Postgres för Guidad Felsökning. # Schemat (infra/k8s/postgres-init.sql) genereras in som ConfigMap av # kustomize och körs vid första starten — samma fil används av # integrationstestet. För produktion rekommenderas CloudNativePG-operatorn # (automatiska säkerhetskopior, failover, PITR). apiVersion: apps/v1 kind: StatefulSet metadata: name: postgres namespace: guidad-felsokning spec: serviceName: postgres replicas: 1 selector: matchLabels: { app: postgres } template: metadata: labels: { app: postgres } spec: containers: - name: postgres image: postgres:17-alpine ports: - containerPort: 5432 env: - name: POSTGRES_DB value: felsokning - name: POSTGRES_USER value: plattform - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: { name: felsokning-hemligheter, key: postgres-losenord } - name: PGDATA value: /var/lib/postgresql/data/pgdata volumeMounts: - name: data mountPath: /var/lib/postgresql/data - name: init mountPath: /docker-entrypoint-initdb.d resources: requests: { cpu: 250m, memory: 256Mi } limits: { cpu: "1", memory: 1Gi } readinessProbe: exec: command: ["pg_isready", "-U", "plattform", "-d", "felsokning"] initialDelaySeconds: 5 volumes: - name: init configMap: { name: postgres-init } volumeClaimTemplates: - metadata: name: data spec: accessModes: [ReadWriteOnce] resources: requests: storage: 10Gi --- apiVersion: v1 kind: Service metadata: name: postgres namespace: guidad-felsokning spec: selector: { app: postgres } ports: - port: 5432