21 lines
1.5 KiB
Markdown
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.
|