# Deployment description apiVersion: apps/v1 kind: Deployment metadata: name: postgres--deployment namespace: dev-environment labels: app: postgres-dev spec: strategy: type: Recreate replicas: 1 selector: matchLabels: app: postgres-dev template: metadata: labels: app: postgres-dev spec: containers: - name: postgres image: postgres:11.12 resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "512Mi" cpu: "4" ports: - containerPort: 5432 envFrom: - configMapRef: name: postgres-config volumeMounts: - mountPath: /var/lib/postgresql/data name: postgredb-pv-dev subPath: postgres volumes: - name: postgredb-pv-dev persistentVolumeClaim: claimName: postgres-pvc-dev --- # Persistent Volume Claim description apiVersion: v1 kind: PersistentVolumeClaim metadata: name: postgres-pvc-dev namespace: dev-environment labels: app: postgres-dev spec: storageClassName: longhorn accessModes: - ReadWriteOnce resources: requests: storage: 2050Mi --- # ConfigMap description apiVersion: v1 kind: ConfigMap metadata: name: postgres-config namespace: dev-environment labels: app: postgres-dev data: POSTGRES_DB: postgresdb POSTGRES_USER: postgresadmin POSTGRES_PASSWORD: Semapp123456! --- # PostgreSQL StatefulSet Service apiVersion: v1 kind: Service metadata: name: postgres-lb namespace: dev-environment spec: selector: app: postgres-dev type: LoadBalancer ports: - port: 5432 targetPort: 5432 ---