Files
local-k8s/kind/postgres.yaml
T
2025-02-22 03:55:26 +00:00

104 lines
2.8 KiB
YAML

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 supplier WITH OWNER postgres ENCODING utf8;
CREATE DATABASE supplier_invoice 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.kubernetes.io/name: postgres
replicas: 1
template:
metadata:
labels:
app.kubernetes.io/name: postgres
spec:
containers:
- name: postgres
image: postgres:17.4-alpine@sha256:c4c3cded22488238ed0df51b82913b5d3b426fad19fbe205a711f05f5dba5c45
args:
- -c
- shared_buffers=384MB
- -c
- max_connections=300
imagePullPolicy: "IfNotPresent"
resources:
requests:
memory: 400Mi
limits:
memory: 600Mi
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: postgres
- name: POSTGRES_USER
value: postgres
- name: POSTGRES_PASSWORD
value: postgres
- name: LANG
value: sv_SE.utf8
- name: POSTGRES_INITDB_ARGS
value: --locale-provider=icu --icu-locale=sv-SE
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.kubernetes.io/name: postgres
spec:
ports:
- port: 5432
nodePort: 5432
selector:
app.kubernetes.io/name: postgres
type: NodePort