|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 10s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m1s
CI / backend-tests (pull_request) Successful in 17m15s
Сегодняшний crontab Beget'а обслуживает ОБА контура сразу — и остающийся (Forgejo), и уезжающий (tradein/gendesign). После 30.08 это перестанет быть верным, а сам crontab об этом не узнает. Пять записей начнут ходить в контейнеры, которых на Beget больше нет: 0 5 * * * backfill_houses_dadata docker exec tradein-backend 30 5 * * * geocode_deals_from_houses docker exec tradein-backend 45 5 * * * geocode_deals_nominatim docker exec tradein-backend 30 4 * * * backup-tradein-db.sh dump из tradein-postgres 30 3 * * * ops/backup.sh dump из gendesign-postgres Падающие по ночам задачи — ещё полбеды. Хуже, что вместе с ними перестанут обновляться sentinel'ы бэкапов; сторож честно это заметит и упрётся в то, что канал оповещения не настроен (#2203: TELEGRAM_* нет ни в одном env-файле). То есть бэкапы обоих продуктовых кластеров пропадут МОЛЧА. Зеркальный и более опасный случай: если на Poincare crontab не установить вовсе, там не будет НИ ОДНОГО бэкапа — и узнать об этом неоткуда, потому что сторож пропущенных прогонов живёт в том же crontab'е. Отсутствие бэкапов обнаружилось бы в момент, когда они понадобятся. Поэтому два эталонных файла, а не инструкция в раннбуке: переход должен быть явным действием (`crontab ops/crontab-<хост>.cron`), а не «забыли поправить». Разбор по хостам: Beget — backup-forgejo.sh + его сторож + docker-prune (здесь остаются CI-раннеры, их тома и растут) Poincare — оба продуктовых бэкапа + два их сторожа + три задачи обогащения/геокодирования + СВОЙ docker-prune docker-prune нужен на обоих: на Beget он чистит тома раннеров, на Poincare образы продуктового стека. Это не «переехавшая» запись, а две разные. Заодно логи переведены с /tmp на /opt/gendesign/logs: половина записей писала в /tmp, который чистится при перезагрузке — именно поэтому историю отказов бэкапов раньше не удавалось восстановить. Времена оставлены прежние: чтобы при разборе後 переезда не гадать, что изменилось — поведение или расписание. `ops/*.cron` добавлен в paths deploy.yml: файлы не исполняются деплоем, но должны физически лежать в /opt/gendesign, иначе в окне их нечем будет установить (тот же класс, что #2887). Проверено: 11 расписаний разобраны построчно — 5 полей + команда, ошибок 0; deploy.yml остаётся валидным YAML. Refs #3059, #3057, #2203 |
||
|---|---|---|
| .. | ||
| ci-tradein.yml | ||
| ci.yml | ||
| deploy-infra.yml | ||
| deploy-obsidian.yml | ||
| deploy-tradein.yml | ||
| deploy.yml | ||
| perimeter-smoke.yml | ||
| stale-claims.yml | ||