Общая информация
Руководство предназначено для администраторов, устанавливающих Selena в свой Kubernetes-кластер. Разделы ниже описывают поддерживаемый production flow.
Порядок установки
- Подготовить Kubernetes, DNS, registry, storage и внешние зависимости.
- Установить foundational external dependencies: PostgreSQL, Keycloak runtime и, если нужен demo, OpenLDAP по разделу Установка внешних зависимостей.
- Настроить Keycloak realm, groups, clients и token claims по разделу Keycloak, LDAP и OAuth.
- Доустановить external dependencies, которым нужны уже созданные Keycloak clients, например bundled monitoring/Grafana OAuth; также установить MinIO и Lakekeeper, если они нужны в выбранной схеме.
- Создать application Secrets для CM, IDE и AI, когда уже известны database endpoints/passwords и Keycloak client secrets.
- Установить только базовую платформу Selena: Selena operator и Selena Cluster Manager.
- Через CM API установить Selena Engine, дождаться
READYи выполнитьbootstrap-auth-rbac. - Только после bootstrap установить IDE, AI backend/frontend и MCP.
- Настроить Selena roles/grants, привязать Keycloak groups к Selena roles, проверить direct SQL и UI. Подробный справочник по grants и object-level privileges: Selena grants, roles и CM API.
IDE, AI и MCP намеренно ставятся после Engine bootstrap. До bootstrap еще не
готовы runtime credentials и Engine endpoint, поэтому ранний deploy этих
сервисов создает лишние Pending/Unready симптомы и усложняет приемку.
External dependencies
Подробный порядок установки внешних зависимостей вынесен в Установка внешних зависимостей. Его результат - готовые endpoints/credentials для PostgreSQL, Keycloak, S3, Lakekeeper и других зависимостей; эти значения затем используются в Values, Secrets и Images.
Разделы
- Preflight — подготовка кластера, DNS, storage и registry access.
- Установка внешних зависимостей — установка или проверка PostgreSQL, Keycloak, monitoring/Grafana, MinIO, Lakekeeper и demo LDAP.
- Keycloak, LDAP и OAuth — Keycloak, LDAP/AD federation, groups, clients, claims и Grafana roles.
- Values, Secrets и Images — минимальные values, application Secrets, images и справочник свойств.
- Установка базовой платформы Selena — установка Selena operator, CM и загрузка license.
- Engine cluster, bootstrap и storage — установка Engine через CM API, bootstrap и storage.
- IDE, AI/MCP, RBAC, пользователи и direct SQL — установка IDE/AI/MCP после bootstrap, RBAC, group sync и direct SQL.
- Приемка, эксплуатация и troubleshooting — финальная приемка, operations и troubleshooting.
- Selena grants, roles и CM API — подробный справочник по Selena roles, grants, object types и CM API.
- Состав поставки — Helm charts и минимальные values-файлы: internal и external.
Placeholder format
В командах используется формат {variable_name}. Это не shell variable.
Перед выполнением команды замените placeholder на фактическое значение.
Пример:
curl -fsS {cm_url}/actuator/health
Если ваш CM API опубликован как https://cm.example.com/api/v1, выполняйте:
curl -fsS https://cm.example.com/api/v1/actuator/health
Значения, которые возвращает API, берите из предыдущего ответа:
| Placeholder | Откуда взять |
|---|---|
{cm_admin_access_token} | Поле .accessToken из ответа POST /auth/login. |
{operation_id} | Поле .operationId из ответа lifecycle operation. |
{bootstrap_operation_id} | Поле .operationId из ответа POST /engine/cluster:bootstrap-auth-rbac. |
{cli_secret} | Поле .cliSecret из ответа POST /me/cli-secret:reset; показывается один раз. |
Для сложных overrides с URL, JSON или списками используйте отдельный values
overlay file и подключайте его через -f. Не передавайте такие значения через
helm --set: символы :, ,, {} и nested keys легко интерпретируются Helm
CLI как разделители, и в итоге chart получает не то значение.
Частые placeholders
| Placeholder | Значение |
|---|---|
{selena_namespace} | Namespace для CM, IDE, AI и shared Secrets, обычно selena. |
{engine_namespace} | Namespace для Selena Engine, обычно selena-engine. |
{operator_namespace} | Namespace Selena operator, обычно selena-operator. |
{monitoring_namespace} | Namespace monitoring/Grafana, обычно selena-monitoring. |
{registry} | Registry/repository prefix с Selena images, например registry.example.com/selena. |
{registry_host} | Host registry для image pull Secret. |
{registry_username} | Username registry service account. |
{registry_password} | Password/token registry service account. |
{keycloak_public_url} | Browser-facing Keycloak URL, например https://keycloak.example.com. |
{keycloak_internal_url} | In-cluster Keycloak URL, например http://selena-keycloak-http.selena-keycloak.svc.cluster.local. |
{cm_url} | CM API URL с /api/v1, например https://cm.example.com/api/v1. |
{cm_internal_url} | In-cluster CM URL, например http://selena-cm.selena.svc.cluster.local:8088/api/v1. |
{ide_public_url} | Browser-facing Selena IDE URL. |
{ai_public_url} | Browser-reachable AI iframe URL. Это может быть отдельный host или path под IDE host. |
{grafana_public_url} | Browser-facing Grafana URL. |
{selena_fe_mysql_host} | Host/IP для direct SQL на port 9030. |
{storage_class} | Kubernetes StorageClass для PVC. |
{engine_tag} | Selena Engine image tag. |
{selena_cm_tag} | Selena CM image tag. |
{selena_ide_tag} | Selena IDE image tag. |
{selena_ai_backend_tag} | Selena AI backend image tag. |
{selena_ai_frontend_tag} | Selena AI frontend image tag. |
{selena_mcp_tag} | Selena MCP image tag. |
{postgres_image_tag} | PostgreSQL image tag, если ставите bundled PostgreSQL chart. |
{keycloak_image_tag} | Keycloak image tag, если ставите bundled Keycloak chart. |
{openldap_image_tag} | OpenLDAP image tag, только для test/demo LDAP. |
{minio_image_tag} | MinIO image tag, если ставите bundled MinIO tenant. |
{lakekeeper_image_tag} | Lakekeeper catalog image tag. |
{vault_image_tag} | Vault image tag, если ставите optional bundled Vault. |
{postgres_service_host} | Kubernetes DNS PostgreSQL service, например selena-postgres.selena-postgres.svc.cluster.local. |
{grafana_login_url_encoded} | URL-encoded Grafana login URL для Keycloak logout, например https%3A%2F%2Fgrafana.example.com%2Flogin. |
Общие правила установки
- Production secrets не кладутся в ConfigMap или plaintext values.
- Public browser endpoints должны быть стабильны до настройки Keycloak clients.
- Direct SQL endpoint публикуется только approved сетевым способом: LoadBalancer, TCP Gateway/Ingress controller feature, private endpoint или VPN-only address.
- LDAP/AD, если используется, подключается к Keycloak federation.
- Пользователи, группы, роли и доступы настраиваются через шаги этого guide и CM API.