Bug fixes and cleanup on top of v0.3.0's OpenTofu migration. Two changes need action
before your next deploy — see Upgrading below.
Highlights
app.regionnow actually drives the deployment (#70). Every.tffile ignored it,
so infrastructure landed inus-west-2no matter what the config said. The provider now
readsapp.region, and the allocator boots from stock Ubuntu 24.04 resolved per-region
via SSM (Docker is installed byuser_data.sh) instead of a hardcoded AMI — so a new
region no longer means copying a custom image.scripts/doctor.sh(#67): a re-runnable preflight that re-checks everything
setup.shcreated and reproduces every hard-fail in the deploy workflow — state bucket,
IAM role, OIDC provider, GitHub secrets, and the config against the allocator's strict
schema — so a problem surfaces locally in seconds instead of three minutes into a
workflow run. Also documents the admin UI the allocator has always shipped.- Cleanup tooling points at the real resource names (#68).
cleanup-orphaned-resources.sh
was searching for names OpenTofu never creates, so it reported a clean account while
resources kept billing. - Scripts run from any directory (#69), and the README is split into an entry point plus
reference pages underdocs/(#66, #71). - HTTP deployments disable H.264 streaming — now said out loud in the docs and by the
doctor (#72), instead of being discovered after setup.
Upgrading from v0.3.0
- Trim your
config.yaml'sdb:block topassword:only (#64, #65). The allocator's
schema accepts no otherdbkey, and the schema is strict —dbname,user,host,
portandtable_namenow make the config fail validation outright. Postgres runs
inside the allocator container; none of them was ever configurable. - Check
app.regionbefore applying. If your config names a region other than
us-west-2, this release will build there — your existingus-west-2resources are not
moved and will keep billing. Destroy the old deployment first, or setapp.regionto
us-west-2to stay put. - The deploy role needs
ssm:GetParameterfor the AMI lookup.scripts/setup.sh
attaches it; a hand-rolled role fromdocs/SETUP.mdneeds it added ortofu planfails. devuses S3 state now, not local state (#63). Setbucket_namein a dev config to a
real bucket you own —scripts/setup.shcreates one.devstays local-only and is not
exposed in the deploy workflow.
An existing allocator keeps the AMI it booted with (ignore_changes = [ami]), so Canonical
publishing a new image will not silently replace a running instance. Note that editing
config.yaml still replaces the allocator EC2 instance.
What's Changed
- docs: record that Path B must never require the LabLink CLI by @7174Andy in #62
- fix: resync configs with the allocator's db schema (main is currently invalid) by @7174Andy in #64
- fix: dev.example.yaml fails validation on main, and restore the correct db docs by @7174Andy in #65
- fix: give dev a real S3 state key instead of unreachable local state by @7174Andy in #63
- docs: restructure README into an entry point plus reference pages, and drop the dead monitoring surface by @7174Andy in #66
- refactor: make every script runnable from any directory by @7174Andy in #69
- fix: point the cleanup tooling at the resource names OpenTofu actually creates by @7174Andy in #68
- feat: add a re-runnable preflight doctor, and document the admin UI Path B already has by @7174Andy in #67
- chore: move standalone docs into docs/, drop unused .dockerignore, add /pr skill by @7174Andy in #71
- fix: make app.region actually drive the deployment, and boot the allocator from stock Ubuntu by @7174Andy in #70
- docs+doctor: say that an HTTP deployment disables H.264 streaming by @7174Andy in #72
Full Changelog: v0.3.0...v0.3.1