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.