Skip to content

Describe a 32 vCPU shape and keeping a host for a test campaign - #4

Merged
RobGrafrath merged 2 commits into
mainfrom
describe-keeping-a-host-for-a-campaign
Oct 10, 2026
Merged

RobGrafrath merged 2 commits into
mainfrom
describe-keeping-a-host-for-a-campaign

Conversation

@RobGrafrath

Copy link
Copy Markdown
Contributor

What this changes and why

This records two decisions Rob made on 2026-10-10: the first production-scale test uses a 32 vCPU host, and a host is kept for as long as a test campaign needs it instead of being torn down and rebuilt for every run, since a rebuild repeats work that already exists.

  • README: the principle "Nothing stays up" becomes "Nothing stays up without an end date".
  • docs/workload-shapes.md: adds the 32 vCPU shape (m6id.8xlarge) and replaces the sentence saying the stack assumes a rebuild.
  • docs/run-a-benchmark.md: adds a section, "Keeping a host for a campaign", and a pointer from the introduction.
  • docs/cost-guardrails.md: points to that section from the timer layer.

Does it make a host easier to leave running or easier to reach?

Yes, on purpose, because it documents keeping a host up for a campaign. The controls stay in place. The lifetime timer is still required and is set to the campaign's length, the end date goes in the run log, and the operator looks at the timer and Cost Explorer every day the host exists. The 32 vCPU quota still caps how much can run at once, and the budget alerts and the budget action are unchanged. The page also says that stopping a host does not save money, because the local disk is lost on stop and a shutdown terminates the instance. It changes no stack, policy, or first-boot code, opens no port, and adds no permission.

How I checked it

scripts/check-repo.py and tofu fmt -check -recursive pass locally, and CI runs validate. The specification of m6id.8xlarge (32 vCPUs, 128 GB, one 1,900 GB local NVMe drive) and the claim that it costs roughly twice the 16 vCPU host are from AWS's published information as I know it. Please confirm both in the console and the pricing calculator before anyone relies on them.

Left out on purpose

  • An upper limit on max_lifetime_hours in the variable validation, such as 14 days, so a typo cannot create a months-long host. It changes stack code, so it should be reviewed on its own.

Checklist

  • tofu fmt -recursive and tofu validate pass in each stack I changed, or I am relying on CI. No stack changed.
  • No state files, .tfvars files, keys, tokens, account IDs, or personal addresses are committed.
  • Docs match the change, and follow the house style (US English, no em or en dashes).
  • Commits are signed off (DCO). If I forgot, I will post the retroactive sign-off comment described in CONTRIBUTING.md.
  • I license this contribution under Apache 2.0.

🤖 Generated with Claude Code

Rob Grafrath and others added 2 commits October 10, 2026 17:43
Rob decided that the first production-scale test uses a 32 vCPU host,
and that a host should persist as long as a test campaign needs it,
instead of being torn down and rebuilt for every run.

The README principle now says that nothing stays up without an end
date. workload-shapes.md gains the 32 vCPU shape and replaces the
"the stack assumes a rebuild" sentence. run-a-benchmark.md gains a
section on keeping a host for a campaign: a timer set to the campaign,
a daily look at the timer and the cost, no stopping to save money
because the local disk is lost on stop, copying results off after every
run, and destroying the host when the campaign ends. The cost
guardrails page points to it.

No stack, policy, or first-boot code changes.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Signed-off-by: Rob Grafrath <[email protected]>
A stop and start does not rerun first boot, so the lifetime timer is
gone and the fstab entry for the local disk no longer matches the new
device. Docker's data root then sits on the slower root disk without any
error. A reboot also clears the scheduled shutdown. Add those two
warnings to the campaign section, and tell the operator to turn off
automatic package updates for the campaign so the host does not drift or
reboot itself.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Signed-off-by: Rob Grafrath <[email protected]>
@RobGrafrath
RobGrafrath marked this pull request as ready for review October 10, 2026 22:58
@RobGrafrath
RobGrafrath merged commit 56aeca9 into main Oct 10, 2026
2 checks passed
@RobGrafrath
RobGrafrath deleted the describe-keeping-a-host-for-a-campaign branch October 10, 2026 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant