commit fa0a17bb7f9465c819f208ee4f6f652dedfecdee Spenser Truex <truex@equwal.com> 2026-09-22 17:46:17 -0700 Merge pull request #12 from equwal/burst-workers Burst mode: workers on the cheapest cloud, ready but off
.gitattributes | 8 + .gitignore | 7 + README.md | 8 + backend/api.py | 2 +- backend/billing.py | 7 + backend/main.py | 13 +- backend/queue.py | 28 +- infra/burst/README.md | 287 +++++++++++++++ infra/burst/cloud-init.yaml.tftpl | 163 +++++++++ infra/burst/state/.terraform.lock.hcl | 61 ++++ infra/burst/state/main.tf | 124 +++++++ infra/burst/state/outputs.tf | 54 +++ infra/burst/state/setup-web-server.sh | 76 ++++ infra/burst/state/tests/host_key.pub | 1 + infra/burst/state/tests/state.tftest.hcl | 109 ++++++ infra/burst/state/variables.tf | 48 +++ infra/burst/systemd/subplz-burst.service | 15 + infra/burst/systemd/subplz-burst.timer | 9 + infra/burst/systemd/subplz-worker.service | 21 ++ infra/burst/worker-constraints.txt | 89 +++++ infra/burst/workers/aws/.terraform.lock.hcl | 26 ++ infra/burst/workers/aws/iam-policy.json | 60 +++ infra/burst/workers/aws/main.tf | 128 +++++++ infra/burst/workers/aws/outputs.tf | 4 + infra/burst/workers/aws/tests/aws.tftest.hcl | 109 ++++++ infra/burst/workers/aws/variables.tf | 48 +++ infra/burst/workers/hetzner/.terraform.lock.hcl | 23 ++ infra/burst/workers/hetzner/main.tf | 71 ++++ infra/burst/workers/hetzner/outputs.tf | 4 + .../burst/workers/hetzner/tests/hetzner.tftest.hcl | 66 ++++ infra/burst/workers/hetzner/variables.tf | 43 +++ requirements-dev.txt | 7 + tests/conftest.py | 2 +- tests/test_burst.py | 403 +++++++++++++++++++++ tests/test_copy_database.py | 83 +++++ tests/test_local_jobs.py | 2 +- tests/test_paid_queue.py | 132 +++++++ tools/burst/__init__.py | 1 + tools/burst/__main__.py | 303 ++++++++++++++++ tools/burst/core.py | 252 +++++++++++++ tools/burst/offers.py | 95 +++++ tools/burst/revenue.py | 55 +++ tools/copy_database.py | 68 ++++ tools/set-secret.sh | 19 +- worker.py | 27 +- 45 files changed, 3134 insertions(+), 27 deletions(-)