apiVersion: apps/v1 kind: Deployment metadata: name: pg16 namespace: infrastructure labels: app: pg16 spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: pg16 template: metadata: labels: app: pg16 spec: containers: - name: postgres image: postgres:16 ports: - containerPort: 5432 name: postgres env: - name: POSTGRES_USER valueFrom: secretKeyRef: name: pg16-secret key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: pg16-secret key: POSTGRES_PASSWORD - name: PGDATA value: /var/lib/postgresql/data/pgdata volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data - name: init-scripts mountPath: /docker-entrypoint-initdb.d resources: requests: memory: "512Mi" cpu: "500m" limits: memory: "2Gi" cpu: "2000m" livenessProbe: exec: command: - pg_isready - -U - postgres initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 readinessProbe: exec: command: - pg_isready - -U - postgres initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 3 volumes: - name: postgres-data persistentVolumeClaim: claimName: pg16-data - name: init-scripts configMap: name: pg16-init-script defaultMode: 0755