--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ai-api-pg namespace: ai-api spec: accessModes: [ReadWriteOnce] resources: requests: storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: ai-api-pg namespace: ai-api spec: replicas: 1 selector: matchLabels: {app: ai-api-pg} strategy: type: Recreate template: metadata: labels: {app: ai-api-pg} spec: containers: - name: postgres image: postgres:15-alpine env: - {name: POSTGRES_USER, value: aiapi} - {name: POSTGRES_PASSWORD, value: aiapi} - {name: POSTGRES_DB, value: aiapi} - {name: PGDATA, value: /var/lib/postgresql/data/pgdata} ports: - {containerPort: 5432} volumeMounts: - {name: data, mountPath: /var/lib/postgresql/data} readinessProbe: exec: {command: [pg_isready, -U, aiapi]} periodSeconds: 5 volumes: - name: data persistentVolumeClaim: claimName: ai-api-pg --- apiVersion: v1 kind: Service metadata: name: ai-api-pg namespace: ai-api spec: selector: {app: ai-api-pg} ports: - {port: 5432, targetPort: 5432}