apiVersion: apps/v1 kind: StatefulSet metadata: name: db2 namespace: cluster1 spec: serviceName: db2 replicas: 1 selector: matchLabels: app: db2 template: metadata: labels: app: db2 spec: containers: - name: postgres image: postgres:15-alpine ports: - containerPort: 5432 env: - name: POSTGRES_DB valueFrom: secretKeyRef: name: cluster1-postgres-secret key: DB2_NAME - name: POSTGRES_USER valueFrom: secretKeyRef: name: cluster1-postgres-secret key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: cluster1-postgres-secret key: POSTGRES_PASSWORD - name: PGDATA value: /var/lib/postgresql/data/pgdata volumeMounts: - name: db2-data mountPath: /var/lib/postgresql/data - name: init-scripts mountPath: /docker-entrypoint-initdb.d/01-init.sql subPath: db2-init.sql - name: init-scripts mountPath: /docker-entrypoint-initdb.d/02-data.sql subPath: db2-data.sql volumes: - name: db2-data persistentVolumeClaim: claimName: db2-data - name: init-scripts configMap: name: cluster1-init-scripts --- apiVersion: v1 kind: Service metadata: name: db2 namespace: cluster1 spec: type: ClusterIP selector: app: db2 ports: - name: postgres port: 5432 targetPort: 5432