Skip to content

feat(manager): upgrade GCP to Ubuntu 24.04 and update Docker packages#2711

Merged
fortuna merged 10 commits intomasterfrom
upgrade-server-images
Feb 23, 2026
Merged

feat(manager): upgrade GCP to Ubuntu 24.04 and update Docker packages#2711
fortuna merged 10 commits intomasterfrom
upgrade-server-images

Conversation

@fortuna
Copy link
Collaborator

@fortuna fortuna commented Feb 22, 2026

  • 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
  • Add missing flags and location metadata for GCP
  • Sort locations by country then name
  • Upgrade CI to only fail lint on modified lines, since modified files had many pre-existing lint errors.

I tested it by running the manager, creating a server on GCP, and connecting to it successfully.

Before:
image

After:
image

- 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]>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_URL unbound-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_report runs from the EXIT trap, so a slow/hung network request here can delay script teardown. Consider adding curl flags like --silent --show-error --fail plus reasonable timeouts/retries to keep installs from hanging and to reduce noise in install-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.

@github-actions github-actions bot added size/M and removed size/XS labels Feb 22, 2026
@github-actions github-actions bot added size/L and removed size/M labels Feb 22, 2026
@github-actions github-actions bot added size/XL and removed size/L labels Feb 23, 2026
Copy link
Contributor

@ohnorobo ohnorobo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

@fortuna fortuna enabled auto-merge (squash) February 23, 2026 15:13
@fortuna fortuna merged commit 1fd9e43 into master Feb 23, 2026
23 checks passed
@fortuna fortuna deleted the upgrade-server-images branch February 23, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants