Files
gooseek/CONTINUE.md
home 1c1a10eb35
Some checks failed
Build and Deploy GooSeek / build-and-deploy (push) Has been cancelled
fix: resolve WebUI API proxy ECONNREFUSED and configmap placeholder issues
- Fix route handlers to use API_GATEWAY_URL env var with correct K8s fallback
  instead of localhost:3015
- Replace ${} placeholders in configmap.yaml with actual static values to
  prevent kustomize from overwriting envsubst-generated config
- Separate secrets into dedicated secrets.yaml for envsubst processing
- Update deploy.sh to only envsubst secrets (configmap now has static values)

Made-with: Cursor
2026-03-03 04:16:57 +03:00

42 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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'ы