- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/ - docs/: 13 файлов — getting-started, architecture, configuration, addons, storage, security, cicd, observability, networking, operations, make-reference, molecule-testing, troubleshooting - addons/*/README.md: 31 новый файл — описание, параметры, примеры кода для каждого из 34 аддонов (vault и external-secrets уже существовали)
2.7 KiB
2.7 KiB
PostgreSQL
PostgreSQL (Bitnami) с поддержкой репликации и Prometheus метриками через postgres_exporter. Используется как общая БД для Gitea, Harbor, Nextcloud, Databasus и других аддонов.
Быстрый старт
# group_vars/all/addons.yml
addon_postgresql: true
Секреты в vault.yml:
vault_postgresql_postgres_password: "superuser-password"
vault_postgresql_password: "app-password"
make addon-postgresql
Параметры
| Переменная | Умолч. | Описание |
|---|---|---|
postgresql_auth_username |
appuser |
Пользователь приложения |
postgresql_auth_database |
appdb |
База данных приложения |
postgresql_storage_size |
8Gi |
Размер PVC |
postgresql_replica_count |
0 |
Реплики (0 = только primary) |
Endpoint (для других аддонов)
postgresql.postgresql.svc.cluster.local:5432
Переменные для подключения:
postgresql_external_host: "postgresql.postgresql.svc.cluster.local"
postgresql_external_port: 5432
Подключение из подов
env:
- name: DB_HOST
value: "postgresql.postgresql.svc.cluster.local"
- name: DB_PORT
value: "5432"
- name: DB_NAME
value: "appdb"
- name: DB_USER
value: "appuser"
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: postgresql
key: password
Создать дополнительные базы и пользователей
kubectl exec -n postgresql statefulset/postgresql -- \
psql -U postgres -c "
CREATE USER myapp WITH PASSWORD 'mypassword';
CREATE DATABASE myapp OWNER myapp;
GRANT ALL PRIVILEGES ON DATABASE myapp TO myapp;
"
Репликация
postgresql_replica_count: 1 # 1 secondary
Primary: postgresql-primary.postgresql.svc.cluster.local:5432
Read replicas: postgresql-read.postgresql.svc.cluster.local:5432
Дамп и восстановление
# Дамп
kubectl exec -n postgresql statefulset/postgresql-primary -- \
pg_dump -U postgres appdb > dump.sql
# Восстановление
kubectl exec -i -n postgresql statefulset/postgresql-primary -- \
psql -U postgres appdb < dump.sql
Автоинтеграция с аддонами
При addon_postgresql: true следующие аддоны автоматически используют PostgreSQL:
addon_gitea— БД giteaaddon_harbor— БД harboraddon_nextcloud— БД nextcloudaddon_databasus— БД databasus