v0.160.0 — Prod on Google Cloud: the preparation
The first half of the Google Cloud program's third milestone (M3a). Nothing changes for players: production stays on AWS and deploys exactly as before. This release puts what production's move needs on main, because only main may build production's infrastructure on Google Cloud. The move itself is the second half (M3b): a rehearsal with a copy of production's data, then one announced window of about an hour. The program's documents are in docs/programs/gcp/; this milestone's tasks, decisions and test scripts are in docs/programs/gcp/m3-prod-on-gcp.md.
On Google Cloud
- [x] Production's stack.
infra/gcp/envs/prod.tfvars:map,api,assetsandhelpat their usual names, one always-on server, a private Postgres 17 database with deletion protection, 14 daily backups and point-in-time recovery, uptime alerts, certificates proven ahead of the switch, and the restore job for the rehearsal. This release's merge builds it, without a server yet. - [x] Help from Google Cloud. The app image carries the help site, and the server answers the help host (
HELP_HOST) with it, at help's usual caching. It's live onnextat help-next-gcp.purplecat.games, and reaches alpha with this release. WithoutHELP_HOST, as on AWS, nothing changes. - [x] Production's deploy, ready and off.
gcp-deploy-prod.ymlbuilds and deploys production on Google Cloud after a merge to main, once production has a server there. The repository variablePROD_HOSTchooses where a merge deploys: unset orawsas today,bothduring the move,gcpafter it. Either owner's merge deploys; infrastructure applies stay the program owner's. - [x] Bug reports on Google Cloud. With
REPORT_GITHUB_TOKEN, reports become issues in the private intake repository, as on AWS. - [x] The move's runbook.
infra/gcp/README.md, "Prod's move (M3)": before the window, the rehearsal, the window step by step, and rolling back at every step.
Still to come (M3b)
- Production's server on Google Cloud, its certificates, and the rehearsal.
- The window: AWS's production stopped, the final copy, DNS switched,
PROD_HOST=gcp.