This commit is contained in:
2023-10-19 12:39:29 +02:00
parent b77d8da90e
commit 823049e14b
16 changed files with 398 additions and 92 deletions

35
database/main.yml Normal file
View File

@ -0,0 +1,35 @@
---
apiVersion: stackgres.io/v1
kind: SGPostgresConfig
metadata:
name: database
namespace: mainscnt
spec:
postgresVersion: '15'
postgresql.conf:
shared_preload_libraries: timescaledb
max_worker_processes: '32'
max_parallel_workers: '16'
---
apiVersion: stackgres.io/v1
kind: SGCluster
metadata:
name: database
namespace: mainscnt
spec:
instances: 1
postgres:
version: '15'
extensions:
- name: timescaledb
ssl:
enabled: true
configurations:
sgPostgresConfig: database
pods:
persistentVolume:
size: '1000Gi'
storageClass: nfs-client
disableConnectionPooling: true

8
database/restart.yml Normal file
View File

@ -0,0 +1,8 @@
apiVersion: stackgres.io/v1
kind: SGDbOps
metadata:
name: restart-002
spec:
sgCluster: database
op: restart

48
database/setup-database.sh Executable file
View File

@ -0,0 +1,48 @@
#!/bin/bash
DATABASE=mainscnt
LOGIN=sink
PASSWORD=`openssl rand -base64 24`
SUPERUSER_LOGIN=$(kubectl get secret -n mainscnt database -o jsonpath="{.data.superuser-username}" | base64 --decode)
SUPERUSER_PASSWORD=$(kubectl get secret -n mainscnt database -o jsonpath="{.data.superuser-password}" | base64 --decode)
kubectl run psql \
--stdin=true \
--tty=true \
--rm=true \
--image=postgres:15-alpine \
-n $NAMESPACE \
--restart=Never \
--env="PGPASSWORD=$SUPERUSER_PASSWORD" \
--env="PGUSER=$SUPERUSER_LOGIN" \
-- \
psql -h database.mainscnt.svc.cluster.local <<EOF
do
\$\$
begin
if not exists (SELECT * FROM pg_database WHERE datname = '$DATABASE') then
CREATE DATABASE $DATABASE;
end if;
if not exists (SELECT * FROM pg_user WHERE usename = '$LOGIN') then
CREATE USER $LOGIN WITH PASSWORD '$PASSWORD';
else
ALTER USER $LOGIN WITH PASSWORD '$PASSWORD';
end if;
GRANT ALL PRIVILEGES ON DATABASE $DATABASE TO $LOGIN;
end
\$\$
;
commit;
EOF
kubectl create secret generic sinkserver-secret \
--dry-run=client \
-o yaml \
--save-config \
--from-literal=dbpass="$PASSWORD" | \
kubectl apply -f - -n $NAMESPACE