Postgre.yaml

apiVersion: v1
kind: Namespace
metadata:
name: postgres

---
apiVersion: v1
kind: ConfigMap
metadata:
name: postgres-config
namespace: postgres
labels:
app: postgres
data:
POSTGRES_DB: postgresdb
POSTGRES_USER: admin
POSTGRES_PASSWORD: g4wjer4cRHTDSAVrHx4o/kJeaqMkKNY4c70kuJ3Dfj0=

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgre-pvc
namespace: postgres
spec:
storageClassName:
nfs-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 50Gi

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
namespace: postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres
imagePullPolicy: "IfNotPresent"
ports:
- containerPort: 5432
envFrom:
- configMapRef:
name: postgres-config
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgredb
volumes:
- name: postgredb
persistentVolumeClaim:
claimName: postgre-pvc

---

apiVersion: v1
kind: Service
metadata:
name: postgres
namespace: postgres
labels:
app: postgres
spec:
type: NodePort
ports:
- port: 5432
targetPort: 5432
nodePort: 30003
selector:
app: postgres