Skip to content

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, assets and help at 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 on next at help-next-gcp.purplecat.games, and reaches alpha with this release. Without HELP_HOST, as on AWS, nothing changes.
  • [x] Production's deploy, ready and off. gcp-deploy-prod.yml builds and deploys production on Google Cloud after a merge to main, once production has a server there. The repository variable PROD_HOST chooses where a merge deploys: unset or aws as today, both during the move, gcp after 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.