Skip to content

JIT Runner Kit v0.3.0

Choose a tag to compare

@Arnon-hs Arnon-hs released this 26 Aug 17:01
03b80e1

Cloudflare-controlled, scale-to-zero shared-host runners

v0.3.0 promotes the provider-agnostic Cloudflare controller from an inert canary to a verified pre-1.0 production-pilot path. A repository-scoped GitHub App, Cloudflare Queue and Durable Object now coordinate a temporary Hetzner pool that scales from zero to one host and runs at most two disposable runner/DinD pairs.

Highlights

  • one temporary burst host can serve adjacent trusted jobs, then returns to zero after the idle window;
  • every job receives its own disposable runner container, DinD daemon, workspace, network, and one-time JIT configuration;
  • repository, branch, event, workflow, label, runner-group, and GitHub-side identity are revalidated before JIT issuance;
  • Primary IPv4 readiness polling, retry classification, ambiguous create recovery, and independent provider cleanup are hardened;
  • the immutable runner image includes Docker CLI/Compose, GitHub CLI, PHP CLI, Python, ShellCheck, and native build tools;
  • the new production cutover runbook covers one-job workflow migration, DinD networking, exact-SHA evidence, cost controls, and scale-to-zero verification;
  • delayed exact-SHA PushEvents must not be converted into timer-based manual duplicate releases.

The original ephemeral VM adapter and polling controller remain explicit compatibility fallbacks. Existing installations should repeat success, failure, cancellation, two-job isolation, retry/DLQ, TTL, and final empty-inventory gates before production use.

See the production cutover runbook, Cloudflare controller guide, and custom runner image guide.

Full Changelog: v0.2.0...v0.3.0