Some checks failed
Build and Deploy GooSeek / build-and-deploy (push) Has been cancelled
- 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
3.0 KiB
3.0 KiB
Deployment Fixes — Завершено
Что было сделано
Корневые проблемы (найдены и исправлены)
- ResourceQuota/LimitRange в неправильном namespace — kustomize перезаписывал namespace с
gooseek-sandboxнаgooseek, блокируя создание подов (CPU quota exceeded: 26.3/16 cores) - NetworkPolicy sandbox-isolation в gooseek — блокировала DNS (порт 53) для всех подов, вызывая CrashLoopBackOff у thread-svc, learning-svc
- Ingress не роутил /api/ на api-gateway* — все API запросы шли на webui (Next.js), возвращая "Service unavailable"
- CHAT_SVC_URL отсутствовал в configmap — api-gateway не мог подключиться к chat-svc
- Readiness probes /ready для сервисов без этого endpoint — agent-svc, search-svc, scraper-svc всегда 0/1
- Rate limiter блокировал health/ready probes — api-gateway падал в CrashLoopBackOff
- 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 applybackend/deploy/k8s/ingress.yaml— добавлен /api route на api-gatewaybackend/deploy/k8s/configmap.yaml— добавлены CHAT_SVC_URL, API_GATEWAY_URLbackend/deploy/k8s/agent-svc.yaml— readinessProbe /ready -> /healthbackend/deploy/k8s/search-svc.yaml— readinessProbe /ready -> /healthbackend/deploy/k8s/scraper-svc.yaml— readinessProbe /ready -> /healthbackend/cmd/api-gateway/main.go— health/ready endpoints до JWT/rate-limit middlewarebackend/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'ы