Deckhouse Development Platform можно установить двумя способами: с внешними инстансами PostgreSQL и Redis (подключение к уже развёрнутым базам данных вне кластера) или с внутренними инстансами (развёртывание PostgreSQL и Redis внутри кластера). Внешние инстансы рекомендуются для production, внутренние подходят для тестов и пилотной эксплуатации.
Установка с внутренними инстансами
Для установки Deckhouse Development Platform включите модуль development-platform в вашем Kubernetes-кластере под управлением Deckhouse Kubernetes Platform. Для этого можно использовать ModuleConfig с минимальным количеством настроек:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: development-platform
spec:
enabled: true
version: 1
settings:
rbac:
superAdminEmail: admin@deckhouse.io # Email супер-администратора, который будет иметь полный доступ к конфигурации платформы. Может быть изменен в любой момент.
security:
secretKey: "16charssecretkey" # Секретный ключ для шифрования приватных данных. При изменении потребуется перегенерация токенов доступа к API платформы и повторное заполнение учетных данных пользователями.После установки веб-интерфейс Deckhouse Development Platform будет доступен по адресу https://ddp.<ваш домен>.
При развёртывании без указания секций postgres и redis платформа разворачивает внутренние инстансы PostgreSQL и Redis внутри кластера. Такой сценарий не рекомендуется для production и подходит только для тестов и пилотной эксплуатации; для промышленной эксплуатации используйте внешние ресурсы.
Настройка внутренних инстансов (опционально)
Если вы используете внутренние инстансы, можно явно указать mode: internal и задать образы из приватного Docker registry:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: development-platform
spec:
enabled: true
version: 1
settings:
rbac:
superAdminEmail: admin@deckhouse.io
security:
secretKey: "16charssecretkey"
postgres:
mode: internal
image: registry.example.com/postgres:16.3 # Образ PostgreSQL из приватного registry.
redis:
mode: internal
image: registry.example.com/redis:7.4.0 # Образ Redis из приватного registry.
additionalImagePullSecrets:
- "custom-registry-secret" # (опционально) дополнительные секреты для доступа к приватному registry.Установка с внешними инстансами
Этот вариант установки рекомендуется для production: платформа подключается к уже развёрнутым PostgreSQL и Redis вне кластера, что обеспечивает отказоустойчивость и упрощает резервное копирование и масштабирование баз данных.
Подключение внешнего PostgreSQL
Для использования внешнего инстанса PostgreSQL необходимо указать параметры подключения в секции postgres:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: development-platform
spec:
enabled: true
version: 1
settings:
rbac:
superAdminEmail: admin@deckhouse.io
security:
secretKey: "16charssecretkey"
postgres:
mode: external
host: postgres.example.com # Имя хоста или IP-адрес сервера PostgreSQL.
port: 5432 # Порт PostgreSQL (по умолчанию 5432).
database: ddp # Название базы данных.
username: ddp_user # Имя пользователя для подключения.
password: secure_password # Пароль для подключения.Расширение pg_trgm
Платформе требуется расширение PostgreSQL pg_trgm. Если используется внешний PostgreSQL, включите его до запуска DDP — подключитесь к базе данных под пользователем с правами на создание расширений и выполните:
CREATE EXTENSION IF NOT EXISTS pg_trgm;При установке с внутренними инстансами расширение создаётся автоматически.
Подключение внешнего Redis
Для использования внешнего инстанса Redis необходимо указать параметры подключения в секции redis:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: development-platform
spec:
enabled: true
version: 1
settings:
rbac:
superAdminEmail: admin@deckhouse.io
security:
secretKey: "16charssecretkey"
redis:
mode: external
host: redis.example.com # Имя хоста или IP-адрес сервера Redis.
port: 6379 # Порт Redis (по умолчанию 6379).
database: "0" # Индекс базы данных Redis (по умолчанию "0").
password: redis_password # Пароль для подключения (необязательно; если Redis без пароля — оставить пустым).Полный пример с внешними инстансами
Пример конфигурации с подключением к внешним инстансам PostgreSQL и Redis:
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: development-platform
spec:
enabled: true
version: 1
settings:
rbac:
superAdminEmail: admin@deckhouse.io
security:
secretKey: "16charssecretkey"
postgres:
mode: external
host: postgres.production.example.com
port: 5432
database: ddp
username: ddp_user
password: secure_postgres_password
redis:
mode: external
host: redis.production.example.com
port: 6379
database: "0"
password: secure_redis_password