kind: PersistentVolume apiVersion: v1 metadata: name: postgres-pv-volume labels: type: local app: postgres spec: storageClassName: manual capacity: storage: 1Gi accessModes: - ReadWriteMany hostPath: path: "/mnt/data" --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: postgres-pv-claim labels: app: postgres spec: storageClassName: manual accessModes: - ReadWriteMany resources: requests: storage: 1Gi # apiVersion: v1 # kind: ConfigMap # metadata: # name: postgres-config # labels: # app: postgres # data: # POSTGRES_DB: carrramba_encore_rate # POSTGRES_USER: postgres # POSTGRES_PASSWORD: password # --- --- apiVersion: apps/v1 kind: Deployment metadata: name: postgres spec: replicas: 1 selector: matchLabels: app: postgres template: metadata: labels: app: postgres service: postgres spec: containers: - name: postgres image: postgres:15.3 # command: [ "sh", "-c"] # args: ["while true; do echo 'yo' && sleep 5; done;"] # imagePullPolicy: "IfNotPresent" ports: - containerPort: 5432 env: - name: POSTGRES_DB value: carrramba_encore_rate - name: POSTGRES_USER value: postgres - name: POSTGRES_PASSWORD value: password # envFrom: # - configMapRef: # name: postgres-config volumeMounts: - mountPath: /var/lib/postgresql/data name: postgredb - mountPath: /docker-entrypoint-initdb.d name: initdb volumes: - name: postgredb persistentVolumeClaim: claimName: postgres-pv-claim - name: initdb configMap: name: postgres-initdb-config --- apiVersion: v1 kind: ConfigMap metadata: name: postgres-initdb-config data: initdb.sql: | CREATE DATABASE carrramba_encore_rate; CREATE EXTENSION IF NOT EXISTS pg_trgm; --- apiVersion: v1 kind: Service metadata: name: postgres labels: app: postgres spec: type: ClusterIP ports: - port: 5432 targetPort: 5432 selector: app: postgres