diff --git a/content/documentation/admin/install.md b/content/documentation/admin/install.md new file mode 100644 index 0000000..b9234e8 --- /dev/null +++ b/content/documentation/admin/install.md @@ -0,0 +1,143 @@ +--- +title: Installation +weight: 11 +--- + +Deckhouse Development Platform can be installed in two ways: with [external PostgreSQL and Redis instances](#installation-with-external-instances) (connecting to databases already deployed outside the cluster) or with [internal instances](#installation-with-internal-instances) (deploying PostgreSQL and Redis inside the cluster). External instances are recommended for production; internal instances are suitable for testing and pilot use. Both options are described below. + +## Installation with internal instances + +To install Deckhouse Development Platform, enable the `development-platform` module in your Kubernetes cluster running on Deckhouse Kubernetes Platform. You can use [ModuleConfig](/products/kubernetes-platform/documentation/v1/reference/api/cr.html#moduleconfig) with minimal settings: + +```yaml +apiVersion: deckhouse.io/v1alpha1 +kind: ModuleConfig +metadata: + name: development-platform +spec: + enabled: true + version: 1 + settings: + rbac: + superAdminEmail: admin@deckhouse.io # Super administrator email with full access to platform configuration. Can be changed at any time. + security: + secretKey: "16charssecretkey" # Secret key for encrypting private data. If changed, API access tokens will need to be regenerated and users will need to re-enter their credentials. +``` + +After installation, the Deckhouse Development Platform web UI will be available at `https://ddp.`. + +When you do not specify `postgres` and `redis` sections, the platform deploys **internal** PostgreSQL and Redis instances inside the cluster. This scenario is not recommended for production and is suitable only for testing and pilot use; for production, use [external resources](#installation-with-external-instances). + +### Configuring internal instances (optional) + +If you use internal instances, you can explicitly set `mode: internal` and specify images from a private Docker registry: + +```yaml +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 image from private registry + redis: + mode: internal + image: registry.example.com/redis:7.4.0 # Redis image from private registry. + additionalImagePullSecrets: + - "custom-registry-secret" # (optional) additional secrets for private registry access. +``` + +## Installation with external instances + +This installation option is recommended for production: the platform connects to PostgreSQL and Redis deployed outside the cluster, which improves resilience and simplifies backup and scaling of databases. + +### Connecting external PostgreSQL + +To use an external PostgreSQL instance, specify connection parameters in the `postgres` section: + +```yaml +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 # PostgreSQL server hostname or IP address. + port: 5432 # PostgreSQL port (default 5432). + database: ddp # Database name. + username: ddp_user # Connection username. + password: secure_password # Connection password. +``` + +### Connecting external Redis + +To use an external Redis instance, specify connection parameters in the `redis` section: + +```yaml +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 # Redis server hostname or IP address. + port: 6379 # Redis port (default 6379). + database: "0" # Redis database index (default "0"). + password: redis_password # Connection password (optional; leave empty if Redis has no password). +``` + +### Full example with external instances + +Example configuration with external PostgreSQL and Redis: + +```yaml +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 +``` diff --git a/content/documentation/admin/install.ru.md b/content/documentation/admin/install.ru.md index b1c0c24..964ec23 100644 --- a/content/documentation/admin/install.ru.md +++ b/content/documentation/admin/install.ru.md @@ -3,4 +3,141 @@ title: Установка weight: 11 --- -Процесс установки Deckhouse Development Platform описан в секции [начало работы](https://deckhouse.ru/modules/development-platform/getting-started.html) в документации модуля. +Deckhouse Development Platform можно установить двумя способами: с [внешними инстансами](#установка-с-внешними-инстансами) PostgreSQL и Redis (подключение к уже развёрнутым базам данных вне кластера) или с [внутренними инстансами](#установка-с-внутренними-инстансами) (развёртывание PostgreSQL и Redis внутри кластера). Внешние инстансы рекомендуются для production, внутренние подходят для тестов и пилотной эксплуатации. + +## Установка с внутренними инстансами + +Для установки Deckhouse Development Platform включите модуль `development-platform` в вашем Kubernetes-кластере под управлением Deckhouse Kubernetes Platform. Для этого можно использовать [ModuleConfig](/products/kubernetes-platform/documentation/v1/reference/api/cr.html#moduleconfig) с минимальным количеством настроек: + +```yaml +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: + +```yaml +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`: + +```yaml +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 # Пароль для подключения. +``` + +### Подключение внешнего Redis + +Для использования внешнего инстанса Redis необходимо указать параметры подключения в секции `redis`: + +```yaml +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: + +```yaml +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 +```