apiVersion: v1
kind: Namespace
metadata:
  name: ha-test
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pgdata
  namespace: ha-test
spec:
  accessModes: [ReadWriteOnce]
  resources: {requests: {storage: 1Gi}}
---
apiVersion: v1
kind: Service
metadata:
  name: postgres
  namespace: ha-test
spec:
  selector: {app: postgres}
  ports: [{port: 5432, targetPort: 5432}]
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres
  namespace: ha-test
spec:
  replicas: 1
  selector: {matchLabels: {app: postgres}}
  template:
    metadata: {labels: {app: postgres}}
    spec:
      containers:
        - name: postgres
          image: docker.io/library/postgres:16-alpine
          env:
            - {name: POSTGRES_USER, value: hangar}
            - {name: POSTGRES_PASSWORD, value: hangar}
            - {name: POSTGRES_DB, value: hangar}
            - {name: PGDATA, value: /var/lib/postgresql/data/pgdata}
          ports: [{containerPort: 5432}]
          volumeMounts: [{name: data, mountPath: /var/lib/postgresql/data}]
      volumes:
        - name: data
          persistentVolumeClaim: {claimName: pgdata}
