Files
pet-project-server/docs/backlog/gitea-runner-on-demand.md
T

21 lines
1.5 KiB
Markdown

# Gitea runner on-demand в Yandex Cloud
**Приоритет:** средний
Self-hosted раннер Gitea Actions, активный только во время сборки. Сборок ~10/нед
по ~5 мин — ВМ 24/7 даёт утилизацию ~1% (≈$23/мес), on-demand — ≈$1/мес (экономия
~95%). Архитектура: push → Gitea webhook → Cloud Function (HMAC-валидация +
стейт-машина старта) → Compute API стартует ВМ → `act_runner` в docker забирает
джобу; на ВМ probe (телеметрия раз в 30с) + decide (решение раз в 1 мин) гасят ВМ
после idle-окна через Compute REST из metadata-токена. Три слоя страховки от
зависшей ВМ (soft idle-stop, probe-staleness, внешний алерт Cloud Monitoring на
uptime > 24ч). Плейбук `playbook-gitea-runner.yml` + набор invoke-тасков
(`runner-bootstrap`, `runner-deploy-function`, `runner-pl`, ...).
Дизайн проработан целиком (ресурсы YC, секреты, стоимость, принятые риски, план
внедрения из 11 шагов). Открытые вопросы: канал нотификаций, executor (docker),
webhook на PR. Полный дизайн:
[docs/drafts/gitea-runner-on-demand.md](../drafts/gitea-runner-on-demand.md).
Связано: playbook-gitea.yml, roles/owner, vars/secrets.yml, tasks.py.