# Deployment Fixes — Завершено ## Что было сделано ### Корневые проблемы (найдены и исправлены) 1. **ResourceQuota/LimitRange в неправильном namespace** — kustomize перезаписывал namespace с `gooseek-sandbox` на `gooseek`, блокируя создание подов (CPU quota exceeded: 26.3/16 cores) 2. **NetworkPolicy sandbox-isolation в gooseek** — блокировала DNS (порт 53) для всех подов, вызывая CrashLoopBackOff у thread-svc, learning-svc 3. **Ingress не роутил /api/* на api-gateway** — все API запросы шли на webui (Next.js), возвращая "Service unavailable" 4. **CHAT_SVC_URL отсутствовал в configmap** — api-gateway не мог подключиться к chat-svc 5. **Readiness probes /ready для сервисов без этого endpoint** — agent-svc, search-svc, scraper-svc всегда 0/1 6. **Rate limiter блокировал health/ready probes** — api-gateway падал в CrashLoopBackOff 7. **Secrets содержали ${...} placeholders** — envsubst не применялся при деплое ### Файлы изменены - `backend/deploy/k8s/opensandbox-sandbox-ns.yaml` — новый (sandbox ресурсы с правильным namespace) - `backend/deploy/k8s/opensandbox.yaml` — убраны sandbox-scoped ресурсы - `backend/deploy/k8s/deploy.sh` — cleanup misplaced ресурсов + sandbox namespace apply - `backend/deploy/k8s/ingress.yaml` — добавлен /api route на api-gateway - `backend/deploy/k8s/configmap.yaml` — добавлены CHAT_SVC_URL, API_GATEWAY_URL - `backend/deploy/k8s/agent-svc.yaml` — readinessProbe /ready -> /health - `backend/deploy/k8s/search-svc.yaml` — readinessProbe /ready -> /health - `backend/deploy/k8s/scraper-svc.yaml` — readinessProbe /ready -> /health - `backend/cmd/api-gateway/main.go` — health/ready endpoints до JWT/rate-limit middleware - `backend/webui/next.config.mjs` — rewrites /api/* -> api-gateway ### Ручные действия на сервере (уже выполнены) - Удалены ResourceQuota, LimitRange, NetworkPolicy из namespace gooseek - Secrets пересозданы с реальными значениями - ConfigMap дополнен недостающими TIMEWEB_* переменными - Redis flush для сброса rate limit ## Сервер - IP: 5.187.77.89 - GPU: RTX 4060 Ti 16GB - Site: https://gooseek.ru - Chat API: работает (Ollama для free tier) ## Важно при следующем деплое - `deploy.sh` использует `envsubst` для configmap — убедиться что `.env` содержит все переменные - Secrets в `configmap.yaml` используют `${...}` — envsubst должен подставить реальные значения - После деплоя проверить что secrets не содержат placeholder'ы