Рабочие пространства запускают IDE и AI-агента в Kubernetes по шаблону рабочего пространства. Шаблон задаёт объекты в целевом кластере; портал управляет созданием, запуском, остановкой, обновлением и удалением.

Подготовка установки

Для первого запуска подготовьте инфраструктуру и доступы:

  1. Создайте внешний сервис Kubernetes и заполните реквизиты доступа к целевому кластеру. Подготовьте целевой неймспейс.
  2. Предоставьте реквизитам права на объекты шаблона. Штатный шаблон создаёт StatefulSet, Service, Ingress, PersistentVolumeClaim, ConfigMap и Secret. Диагностика также читает поды, их логи и события; управление пространством изменяет число реплик StatefulSet и подключается к контейнерам.
  3. Подготовьте класс хранения для постоянного тома. Штатный шаблон использует ReadWriteOnce; класс можно выбрать в файлах шаблона.
  4. Подготовьте отдельный домен IDE и приложений, wildcard-запись DNS и TLS. Используйте домен, отдельный от родительского домена DDP и Dex, для которого браузер допускает cookie. Адреса должны быть доступны из браузера пользователя. Порядок настройки — в примерах Ingress и TLS.
  5. Обеспечьте доступ из целевых подов и Jobs операций к HTTPS-адресу портала с доверенным сертификатом. Он используется для состояния OpenTofu, обращения к модели, MCP и проверки доступа в IDE.
  6. Если используются закрытые хранилища образов, подготовьте Secrets для скачивания образов в соответствующих неймспейсах.
  7. Для шаблона с репозиторием создайте подключение Git и заполните реквизиты. Пользователям потребуется AI-провайдер.

При установке модулем development-platform Jobs операций OpenTofu выполняются в неймспейсе модуля. Под, том и Ingress рабочего пространства создаются в кластере и неймспейсе, выбранных в шаблоне. Эти места могут различаться.

Лимиты установки

До первого создания рабочего пространства сохраните лимиты в разделе «AI» → «Рабочие пространства» → «Шаблоны рабочих пространств», блок «Лимиты установки»:

ПолеНазначение
«Запущенных рабочих пространств на пользователя»Ограничивает число одновременно запущенных пространств одного владельца
«Запущенных рабочих пространств всего»Ограничивает число одновременно запущенных пространств установки

Оба значения — целые числа не меньше единицы. Для изменения требуется edit:workspace-policy, для просмотра — read:workspace-policy. Без сохранённых лимитов создание недоступно. Остановленные пространства не учитываются в лимите запущенных.

Выбор учётных данных

По умолчанию операции в Kubernetes используют реквизиты владельца рабочего пространства, а клонирование репозитория — его токен Git. Реквизиты заполняются в профиле для соответствующего внешнего сервиса.

На вкладке «Подключение» шаблона можно отдельно для Kubernetes и Git включить «Использовать сервисную учётную запись» и выбрать «Учётная запись». В этом случае операции используют реквизиты выбранного пользователя.

Токен Git выбранной учётной записи доступен владельцу внутри рабочего пространства. Выбирайте учётную запись с доступом к тем проектам, с которыми разрешена работа по этому шаблону.

Выдача доступа

Для создания рабочих пространств выдайте пользователю create:workspaces и право использовать шаблон: глобальное use:workspace-templates или объектное use:workspace-template. Для перехода в раздел «AI» требуется view:ai-page.

Просмотр, запуск, остановка и удаление регулируются разрешениями рабочих пространств. Владение предоставляет права, когда включена настройка owner-is-admin.

После подготовки создайте и активируйте шаблон, затем выполните пользовательский сценарий создания.

Параметры модуля

При установке модулем можно переопределить адрес backend и ресурсы Jobs операций. Пример фрагмента spec.settings ModuleConfig:

workspaces:
  backendUrl: https://ddp.example.com
  jobResources:
    cpuMillicores: 500
    memoryBytes: 1073741824
    temporaryBytes: 134217728

Без переопределения используется HTTPS-адрес портала, 500 millicores CPU, 1 ГиБ памяти и 128 МиБ временного хранилища на Job. Значения CPU и памяти задают requests и limits Jobs. Ресурсы контейнеров самого рабочего пространства задаются в шаблоне.