kind: ConfigMap apiVersion: v1 metadata: name: shared-postgres data: DB_HOST: "postgres-postgresql" DB_PORT: "5432" DB_USER: "postgres" --- apiVersion: v1 kind: ConfigMap metadata: name: postgres-init data: initdb.sh: |- #!/usr/bin/env bash set -e psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL CREATE DATABASE schemas WITH OWNER postgres ENCODING utf8; CREATE DATABASE accounting WITH OWNER postgres ENCODING utf8; CREATE DATABASE authz WITH OWNER postgres ENCODING utf8; CREATE DATABASE company WITH OWNER postgres ENCODING utf8; CREATE DATABASE consumer WITH OWNER postgres ENCODING utf8; CREATE DATABASE employee WITH OWNER postgres ENCODING utf8; CREATE DATABASE invoice WITH OWNER postgres ENCODING utf8; CREATE DATABASE notification WITH OWNER postgres ENCODING utf8; CREATE DATABASE salary WITH OWNER postgres ENCODING utf8; CREATE DATABASE time WITH OWNER postgres ENCODING utf8; CREATE DATABASE dancefinder WITH OWNER postgres ENCODING utf8; CREATE DATABASE hifi WITH OWNER postgres ENCODING utf8; EOSQL --- apiVersion: apps/v1 kind: Deployment metadata: name: postgres spec: selector: matchLabels: app: postgres replicas: 1 template: metadata: labels: app: postgres spec: containers: - name: postgres image: argoyle/postgres-sv_se:15 imagePullPolicy: "IfNotPresent" resources: requests: memory: 200Mi limits: memory: 300Mi ports: - containerPort: 5432 env: - name: POSTGRES_DB value: postgres - name: POSTGRES_USER value: postgres - name: POSTGRES_PASSWORD value: postgres volumeMounts: - name: data mountPath: /var/lib/postgresql/data - mountPath: /docker-entrypoint-initdb.d/initdb.sh name: initdb subPath: initdb.sh volumes: - name: data hostPath: path: /data/postgres - name: initdb configMap: name: postgres-init --- apiVersion: v1 kind: Service metadata: name: postgres labels: app: postgres spec: ports: - port: 5432 nodePort: 5432 selector: app: postgres type: NodePort