Перейти к основному содержимому
Версия: 2.0.x

Общая информация

Руководство предназначено для администраторов, устанавливающих Selena в свой Kubernetes-кластер. Разделы ниже описывают поддерживаемый production flow.

Порядок установки​

  1. Подготовить Kubernetes, DNS, registry, storage и внешние зависимости.
  2. Установить foundational external dependencies: PostgreSQL, Keycloak runtime и, если нужен demo, OpenLDAP по разделу Установка внешних зависимостей.
  3. Настроить Keycloak realm, groups, clients и token claims по разделу Keycloak, LDAP и OAuth.
  4. Доустановить external dependencies, которым нужны уже созданные Keycloak clients, например bundled monitoring/Grafana OAuth; также установить MinIO и Lakekeeper, если они нужны в выбранной схеме.
  5. Создать application Secrets для CM, IDE и AI, когда уже известны database endpoints/passwords и Keycloak client secrets.
  6. Установить только базовую платформу Selena: Selena operator и Selena Cluster Manager.
  7. Через CM API установить Selena Engine, дождаться READY и выполнить bootstrap-auth-rbac.
  8. Только после bootstrap установить IDE, AI backend/frontend и MCP.
  9. Настроить 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.

Разделы​

  1. Preflight — подготовка кластера, DNS, storage и registry access.
  2. Установка внешних зависимостей — установка или проверка PostgreSQL, Keycloak, monitoring/Grafana, MinIO, Lakekeeper и demo LDAP.
  3. Keycloak, LDAP и OAuth — Keycloak, LDAP/AD federation, groups, clients, claims и Grafana roles.
  4. Values, Secrets и Images — минимальные values, application Secrets, images и справочник свойств.
  5. Установка базовой платформы Selena — установка Selena operator, CM и загрузка license.
  6. Engine cluster, bootstrap и storage — установка Engine через CM API, bootstrap и storage.
  7. IDE, AI/MCP, RBAC, пользователи и direct SQL — установка IDE/AI/MCP после bootstrap, RBAC, group sync и direct SQL.
  8. Приемка, эксплуатация и troubleshooting — финальная приемка, operations и troubleshooting.
  9. Selena grants, roles и CM API — подробный справочник по Selena roles, grants, object types и CM API.
  10. Состав поставки — 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.