--- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment namespace: demo labels: app: nginx spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: imagePullSecrets: - name: regcred containers: - name: nginx image: docker.io/nginx:1.23.3 ports: - containerPort: 80 volumeMounts: - name: demo-data mountPath: /data volumes: - name: demo-data persistentVolumeClaim: claimName: demo-pvc --- apiVersion: v1 kind: ConfigMap metadata: name: postgres-config-demo namespace: demo labels: app: postgres data: POSTGRES_DB: demopostgres POSTGRES_USER: demopostgres POSTGRES_PASSWORD: password123! --- apiVersion: v1 kind: Service metadata: name: postgres namespace: demo labels: app: postgres spec: ports: - port: 5432 name: postgres clusterIP: None selector: app: postgres --- apiVersion: apps/v1 kind: StatefulSet metadata: name: postgres-demo namespace: demo spec: serviceName: "postgres" replicas: 1 selector: matchLabels: app: postgres template: metadata: labels: app: postgres spec: containers: - name: postgres image: postgres:12 envFrom: - configMapRef: name: postgres-config-demo ports: - containerPort: 5432 name: postgredb volumeMounts: - name: postgredb mountPath: /var/lib/postgresql/data volumes: - name: postgredb