feat(manager): upgrade GCP to Ubuntu 24.04 and update Docker packages#2711
feat(manager): upgrade GCP to Ubuntu 24.04 and update Docker packages#2711
Conversation
- Upgrade GCP image from ubuntu-2204-lts to ubuntu-2404-lts-amd64 - Update Docker packages to 29.2.1 and containerd.io to 2.2.1 targeting Ubuntu Noble - Add comment clarifying the docker-20-04 DO slug runs Ubuntu 22.04 - Fix SENTRY_API_URL unbound variable in gcp_install_server.sh Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
There was a problem hiding this comment.
Pull request overview
Upgrades the default Ubuntu base image for newly created GCP instances and updates the GCP install script to pull Docker/containerd packages compatible with Ubuntu 24.04 (Noble), along with a small clarification for DigitalOcean image naming and a shell safety fix for Sentry reporting.
Changes:
- Switch GCP instance source image family to Ubuntu 24.04 LTS (amd64).
- Update GCP installer to download/install Docker CE 29.2.1 and containerd.io 2.2.1 from the Noble repo.
- Clarify DigitalOcean image slug naming and prevent
SENTRY_API_URLunbound-variable failures in the GCP installer.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
server_manager/www/gcp_account.ts |
Updates the GCP VM base image family to Ubuntu 24.04 LTS (amd64). |
server_manager/www/digitalocean_account.ts |
Adds an explanatory comment for the docker-20-04 DigitalOcean image slug. |
server_manager/install_scripts/gcp_install_server.sh |
Fixes SENTRY_API_URL unset handling and updates Docker/containerd package downloads for Ubuntu Noble. |
Comments suppressed due to low confidence (1)
server_manager/install_scripts/gcp_install_server.sh:56
post_sentry_reportruns from the EXIT trap, so a slow/hung network request here can delay script teardown. Consider adding curl flags like--silent --show-error --failplus reasonable timeouts/retries to keep installs from hanging and to reduce noise ininstall-shadowbox-output(the DO installer already uses-sSL).
function post_sentry_report() {
if [[ -n "${SENTRY_API_URL:-}" ]]; then
# Get JSON formatted string. This command replaces newlines with literal '\n'
# but otherwise assumes that there are no other characters to escape for JSON.
# If we need better escaping, we can install the jq command line tool.
local -ir SENTRY_PAYLOAD_BYTE_LIMIT=8000
local SENTRY_PAYLOAD
SENTRY_PAYLOAD="{\"message\": \"Install error:\n$(awk '{printf "%s\\n", $0}' < "${SENTRY_LOG_FILE}" | tail --bytes "${SENTRY_PAYLOAD_BYTE_LIMIT}")\"}"
# See Sentry documentation at:
# https://media.readthedocs.org/pdf/sentry/7.1.0/sentry.pdf
curl "${SENTRY_API_URL}" -H "Origin: shadowbox" --data-binary "${SENTRY_PAYLOAD}"
fi
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
ohnorobo
left a comment
There was a problem hiding this comment.
Thanks. This looks much nicer.
Not blocking for this change, but would it make sense to add a test which hits the GCP regions api (can this be done without any auth?) and validates we have the correct strings so we notice when this goes out of sync? Or is it too annoying to have CI that randomly fails because GCP made a change?
I tested it by running the manager, creating a server on GCP, and connecting to it successfully.
Before:

After:
