# PostgreSQL PostgreSQL (Bitnami) с поддержкой репликации и Prometheus метриками через postgres_exporter. Используется как общая БД для Gitea, Harbor, Nextcloud, Databasus и других аддонов. ## Быстрый старт ```yaml # group_vars/all/addons.yml addon_postgresql: true ``` Секреты в `vault.yml`: ```yaml vault_postgresql_postgres_password: "superuser-password" vault_postgresql_password: "app-password" ``` ```bash 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 ``` Переменные для подключения: ```yaml postgresql_external_host: "postgresql.postgresql.svc.cluster.local" postgresql_external_port: 5432 ``` ## Подключение из подов ```yaml 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 ``` ## Создать дополнительные базы и пользователей ```bash 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; " ``` ## Репликация ```yaml postgresql_replica_count: 1 # 1 secondary ``` Primary: `postgresql-primary.postgresql.svc.cluster.local:5432` Read replicas: `postgresql-read.postgresql.svc.cluster.local:5432` ## Дамп и восстановление ```bash # Дамп 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` — БД gitea - `addon_harbor` — БД harbor - `addon_nextcloud` — БД nextcloud - `addon_databasus` — БД databasus ## Официальные ресурсы - Официальный сайт: [https://www.postgresql.org/](https://www.postgresql.org/) - Официальная документация: [https://www.postgresql.org/docs/](https://www.postgresql.org/docs/) - Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/bitnami/postgresql](https://artifacthub.io/packages/helm/bitnami/postgresql)