AI Platform Docs
Разработка

Ежедневный цикл разработки

Порядок изменения, проверки и локального развёртывания компонентов Платформы ИИ.

Ежедневная разработка разделяет быстрые проверки исходного кода и проверку интегрированной среды. Только Garden изменяет состояние управляемой среды, но для каждого небольшого изменения не требуется разворачивать весь продукт.

Перед началом работы

Проверьте кластер и локальные соответствия исходного кода:

kubectl \
  --kubeconfig "$HOME/.kube/ap-dev-local" \
  --context kind-ap-dev-local \
  get nodes

cd ap-deploy
garden get linked-repos --env dev-local
garden validate --env dev-local

Если нужного соответствия нет, повторите:

python3 scripts/link_local_actions.py

Цикл изменения

Рабочая последовательность:

  1. Измените код в репозитории владельца компонента.
  2. Выполните целевые тесты, проверку типов и форматирование этого репозитория.
  3. Перейдите в ap-deploy.
  4. При необходимости посмотрите план выбранного развёртывания.
  5. Разверните минимальную требуемую точку входа.
  6. Проверьте логи и состояние ресурсов.
  7. Выполните пользовательскую проверку через канонический адрес шлюза.

Пример команд:

cd ap-deploy

garden deploy langflow --env dev-local --plan
garden deploy langflow --env dev-local --yes
garden logs langflow --env dev-local --tail 100

Чтобы развернуть компоненты Платформы ИИ, используйте target agent-platform:

garden deploy agent-platform --env dev-local --plan
garden deploy agent-platform --env dev-local --yes
garden logs agent-platform --env dev-local --tail 100

Garden пересчитывает версии действий по включённым исходным файлам. Изменение интерфейса не должно пересобирать несвязанный образ серверной части, а изменение одного продукта не должно развёртывать независимый target другого технического репозитория.

Доступ и проверка результата

В отдельном терминале должен работать локальный шлюз:

garden run dev-local-edge-forward --env dev-local

Проверяйте результат через публичный контракт локальной среды, а не через прямой порт Kubernetes Service:

В зависимости от изменения проверьте:

  • готовность компонента;
  • вход через Keycloak и возврат на точный адрес приложения;
  • изменённый пользовательский сценарий;
  • отсутствие ошибок в логах;
  • корректность HTTPRoute и публичного пути;
  • сохранение данных после замены Pod, если изменение затрагивает хранение.

Успешный ответ прямого Service не заменяет проверку через шлюз: он обходит маршрутизацию, публичный адрес и часть OIDC-контракта.

Работа с тестовыми данными

Обычные точки входа не создают тестовых пользователей и агентов. Подключайте тестовые данные только для сценария, который действительно их требует:

garden run identity-fixtures --env dev-local --yes
garden deploy agent-platform-fixtures --env dev-local --yes
garden run langflow-fixtures --env dev-local --yes
garden deploy all-fixtures --env dev-local --yes

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

Изменение конфигурации Garden или Helm

Изменение графа, окружения или Helm-чарта требует дополнительных проверок:

cd ap-deploy
python3 scripts/check_source_pins.py
python3 scripts/check_identity_contract.py
python3 scripts/check_fixture_route.py
garden validate --env dev-local
garden get graph --env dev-local --output json \
  | python3 scripts/check_graph.py

Также выполните проверки Helm-чарта во владеющем репозитории. Не копируйте манифест приложения в ap-deploy ради удобства связывания.

Изменение нескольких репозиториев

Если одно изменение затрагивает реализацию компонента и композицию:

  1. Подготовьте обратно совместимое изменение во владеющем репозитории.
  2. Проверьте его локально через соответствия действий Garden.
  3. Зафиксируйте изменение отдельным Git-коммитом.
  4. Обновите полный SHA источника в ap-deploy.
  5. Отключите локальные соответствия либо выполните проверку в чистом операторском каталоге.
  6. Повторите статические проверки и развёртывание по закреплённому SHA.

Плавающая ветка не является составом поставки общей среды.

Быстрое обновление кода

Текущий граф выполняет пересборку образа и обновление развёртывания после изменения исходных файлов. Это переходное ограничение, а не целевой процесс.

Следующий этап — настроить синхронизацию исходных файлов Garden для компонентов, которым требуется короткий цикл изменения. Ожидаемое поведение:

  • изменение исходного файла попадает в работающий контейнер без полной сборки;
  • процесс приложения автоматически перечитывает изменение;
  • изменение зависимостей или Dockerfile по-прежнему вызывает сборку образа;
  • режим разрешён только в dev-local;
  • ST использует только неизменяемые образы;
  • платформенные сценарии Docker Compose после этого удаляются.

До реализации этого этапа нативные команды репозитория можно использовать для целевых тестов и локального процесса приложения, но они не подтверждают работу интегрированной среды.

Критерии готовности изменения

Перед передачей результата убедитесь, что:

  • проверки владеющего репозитория прошли;
  • конфигурация Garden разрешается без ошибок;
  • изменённая точка входа развёрнута в dev-local;
  • проверка выполнена через канонический адрес шлюза;
  • ручные изменения управляемых Kubernetes-ресурсов не использовались;
  • для изменения нескольких репозиториев обновлён закреплённый SHA;
  • секреты, токены и содержимое kubeconfig не попали в логи или материалы проверки;
  • явно перечислено, что не проверялось.

На этой странице