apiVersion: apps/v1 kind: StatefulSet metadata: name: inferroute-postgres namespace: inferroute labels: app.kubernetes.io/name: inferroute app.kubernetes.io/component: postgres spec: serviceName: inferroute-postgres replicas: 1 selector: matchLabels: app: inferroute-postgres template: metadata: labels: app: inferroute-postgres spec: containers: - name: postgres image: postgres:16-alpine ports: - containerPort: 5432 env: - name: POSTGRES_USER value: postgres - name: POSTGRES_DB value: inferroute - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: inferroute-secrets key: POSTGRES_PASSWORD - name: PGDATA value: /var/lib/postgresql/data/pgdata resources: requests: cpu: "200m" memory: "256Mi" limits: cpu: "1000m" memory: "1Gi" volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data readinessProbe: exec: command: ["pg_isready", "-U", "postgres"] initialDelaySeconds: 5 periodSeconds: 5 livenessProbe: exec: command: ["pg_isready", "-U", "postgres"] initialDelaySeconds: 30 periodSeconds: 15 volumeClaimTemplates: - metadata: name: postgres-data spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 10Gi --- apiVersion: v1 kind: Service metadata: name: inferroute-postgres namespace: inferroute spec: selector: app: inferroute-postgres ports: - port: 5432 targetPort: 5432 type: ClusterIP