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

1.5 KiB

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.

Связано: playbook-gitea.yml, roles/owner, vars/secrets.yml, tasks.py.