diff --git a/HISTORY/incident-2026-08-31.md b/HISTORY/incident-2026-08-31.md new file mode 100644 index 0000000..1effc5c --- /dev/null +++ b/HISTORY/incident-2026-08-31.md @@ -0,0 +1,32 @@ +# Инцидент: `tf-registry.containerk8s.services.ngcloud.ru` отдаёт 503 + +## Зафиксированные факты + +- `tf-registry.containerk8s.services.ngcloud.ru` резолвится в `5.172.178.231`. +- Запросы `GET /healthz` и `GET /readyz` возвращают `HTTP/2 503` с телом nginx `503 Service Temporarily Unavailable`. +- Прямое подключение к `5.172.178.231:5000` не устанавливается (порт backend наружу не публикуется). +- VM `5.172.178.213` доступна, но это ВМ для сборки — managed-контейнер к ней отношения не имеет. +- Следовательно, запрос не доходит до Go-сервера: это недоступный или не запущенный upstream, а не ошибка обработчиков `/healthz`, `/readyz` или S3 readiness. + +## Диагностика образа (подтверждённые факты) + +- Docker Registry Gitea (`gitea.services.ngcloud.ru/nail/tf_registry`) был **пуст**: `tags=` (тегов нет). +- `docker manifest inspect ...:latest` → `manifest unknown`; `:0.0.2` → `manifest unknown`. +- С ВМ `5.172.178.213` доступа до Gitea **нет**: TCP `194.31.9.41:443` — `SYN-SENT`, DNS `lookup gitea.services.ngcloud.ru` — `i/o timeout`, traceroute обрывается на `100.64.24.24`. Общий интернет с ВМ работает (docker hub доступен). +- Локальная машина (Krupski) имеет доступ до Gitea напрямую; `docker login gitea.services.ngcloud.ru --username Naeel` → `Login Succeeded`. +- Образ собран на ВМ из текущего `master` (rsync), затем перенесён локально через `docker save`/`scp`/`load`. + +## Push образа 0.0.1 (выполнено) + +- `docker push gitea.services.ngcloud.ru/nail/tf_registry:0.0.1` (с локальной машины) — успешно. +- Digest: `sha256:9a00836c916e2cae597e31dff2184a08550bd1be262bdba980d17de2943aa4a7` +- Проверка: `docker pull gitea.services.ngcloud.ru/nail/tf_registry:0.0.1` → `PULL_OK`. +- ID образа: `sha256:3c76e53a7213d0404932aac6b8ad0dc0c254b35f14d6d3d420a18ba4ec07b0d3` + +## Требуемое восстановление + +1. В Nubes Cloud открыть инстанс с доменом `tf-registry.containerk8s.services.ngcloud.ru` и проверить состояние deployment/реплик и событий запуска. +2. Обновить `registryPath` на `gitea.services.ngcloud.ru/nail/tf_registry:0.0.1` (образ с этим тегом уже опубликован). +3. Проверить, что контейнер слушает `PORT=5000`, а healthcheck использует доступный путь. +4. Выполнить redeploy через UI `modify`. +5. После запуска проверить `https://tf-registry.containerk8s.services.ngcloud.ru/healthz` и `/.well-known/terraform.json`.