Ежедневный цикл разработки
Порядок изменения, проверки и локального развёртывания компонентов Платформы ИИ.
Ежедневная разработка разделяет быстрые проверки исходного кода и проверку интегрированной среды. Только 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Цикл изменения
Рабочая последовательность:
- Измените код в репозитории владельца компонента.
- Выполните целевые тесты, проверку типов и форматирование этого репозитория.
- Перейдите в
ap-deploy. - При необходимости посмотрите план выбранного развёртывания.
- Разверните минимальную требуемую точку входа.
- Проверьте логи и состояние ресурсов.
- Выполните пользовательскую проверку через канонический адрес шлюза.
Пример команд:
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 100Garden пересчитывает версии действий по включённым исходным файлам. Изменение интерфейса не должно пересобирать несвязанный образ серверной части, а изменение одного продукта не должно развёртывать независимый target другого технического репозитория.
Доступ и проверка результата
В отдельном терминале должен работать локальный шлюз:
garden run dev-local-edge-forward --env dev-localПроверяйте результат через публичный контракт локальной среды, а не через прямой порт Kubernetes Service:
- Low-code IDE — http://ide.localhost:18086;
- API платформы — http://api-gw.localhost:18085;
- документация — http://docs.localhost:18086.
В зависимости от изменения проверьте:
- готовность компонента;
- вход через 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 ради удобства связывания.
Изменение нескольких репозиториев
Если одно изменение затрагивает реализацию компонента и композицию:
- Подготовьте обратно совместимое изменение во владеющем репозитории.
- Проверьте его локально через соответствия действий Garden.
- Зафиксируйте изменение отдельным Git-коммитом.
- Обновите полный SHA источника в
ap-deploy. - Отключите локальные соответствия либо выполните проверку в чистом операторском каталоге.
- Повторите статические проверки и развёртывание по закреплённому SHA.
Плавающая ветка не является составом поставки общей среды.
Быстрое обновление кода
Текущий граф выполняет пересборку образа и обновление развёртывания после изменения исходных файлов. Это переходное ограничение, а не целевой процесс.
Следующий этап — настроить синхронизацию исходных файлов Garden для компонентов, которым требуется короткий цикл изменения. Ожидаемое поведение:
- изменение исходного файла попадает в работающий контейнер без полной сборки;
- процесс приложения автоматически перечитывает изменение;
- изменение зависимостей или
Dockerfileпо-прежнему вызывает сборку образа; - режим разрешён только в
dev-local; - ST использует только неизменяемые образы;
- платформенные сценарии
Docker Composeпосле этого удаляются.
До реализации этого этапа нативные команды репозитория можно использовать для целевых тестов и локального процесса приложения, но они не подтверждают работу интегрированной среды.
Критерии готовности изменения
Перед передачей результата убедитесь, что:
- проверки владеющего репозитория прошли;
- конфигурация Garden разрешается без ошибок;
- изменённая точка входа развёрнута в
dev-local; - проверка выполнена через канонический адрес шлюза;
- ручные изменения управляемых Kubernetes-ресурсов не использовались;
- для изменения нескольких репозиториев обновлён закреплённый SHA;
- секреты, токены и содержимое kubeconfig не попали в логи или материалы проверки;
- явно перечислено, что не проверялось.