87 lines
No EOL
2.3 KiB
YAML
87 lines
No EOL
2.3 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: postgres-init
|
|
namespace: darkdork-dev
|
|
data:
|
|
init-db.sh: |
|
|
#!/bin/bash
|
|
set -e
|
|
DB_USER=${DB_USER:-pleroma}
|
|
DB_NAME=${DB_NAME:-pleroma}
|
|
psql -U ${POSTGRES_USER:-postgres} -tc "SELECT 1 FROM pg_user WHERE usename = '$DB_USER'" | \
|
|
grep -q 1 || psql -U postgres -c "CREATE USER $DB_USER WITH ENCRYPTED PASSWORD '$DB_PASS'"
|
|
psql -U ${POSTGRES_USER:-postgres} -tc "SELECT 1 FROM pg_database WHERE datname = '$DB_NAME'" | \
|
|
grep -q 1 || psql -U postgres -c "CREATE DATABASE $DB_NAME OWNER $DB_USER"
|
|
psql -v ON_ERROR_STOP=1 --username "${POSTGRES_USER:-postgres}" --dbname "$DB_NAME" <<-EOSQL
|
|
CREATE EXTENSION IF NOT EXISTS citext;
|
|
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
EOSQL
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: postgres-config
|
|
namespace: darkdork-dev
|
|
data:
|
|
postgresql.conf: |
|
|
# connections settings
|
|
listen_addresses = '*'
|
|
max_connections = 100
|
|
|
|
# memory settings
|
|
shared_buffers = 2GB
|
|
effective_cache_size = 3GB
|
|
work_mem = 74898kB
|
|
maintenance_work_mem = 512MB
|
|
temp_buffers = 32MB
|
|
huge_pages = off
|
|
|
|
# wal settings
|
|
wal_buffers = 16MB
|
|
min_wal_size = 1GB
|
|
max_wal_size = 4GB
|
|
|
|
# checkpoint settings
|
|
checkpoint_completion_target = 0.9
|
|
checkpoint_timeout = 15min
|
|
checkpoint_flush_after = 0
|
|
|
|
# query planner settings
|
|
default_statistics_target = 100
|
|
random_page_cost = 1.1
|
|
seq_page_cost = 1.0
|
|
cpu_tuple_cost = 0.01
|
|
cpu_index_tuple_cost = 0.005
|
|
cpu_operator_cost = 0.0025
|
|
effective_io_concurrency = 200
|
|
|
|
# write performance optimizations
|
|
synchronous_commit = off
|
|
commit_delay = 10000
|
|
commit_siblings = 5
|
|
|
|
# bg writer settings
|
|
bgwriter_delay = 50ms
|
|
bgwriter_lru_maxpages = 1000
|
|
bgwriter_lru_multiplier = 10.0
|
|
|
|
# paralel query settings
|
|
max_worker_processes = 8
|
|
max_parallel_workers = 8
|
|
max_parallel_workers_per_gather = 2
|
|
max_parallel_maintenance_workers = 2
|
|
|
|
# misc settings
|
|
max_prepared_transactions = 0
|
|
|
|
# log settings
|
|
log_destination = 'stderr'
|
|
logging_collector = on
|
|
log_directory = 'pg_log'
|
|
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
|
|
log_min_duration_statement = 1000
|
|
log_lock_waits = on
|
|
log_checkpoints = on |