From d081d89c8583473f6b6c530303fda6fe997c429a Mon Sep 17 00:00:00 2001 From: Nishad Mathur Date: Fri, 10 Jul 2026 14:04:27 -0700 Subject: [PATCH] ci: migrate registry-image resources from Docker Hub to GHCR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switch all three registry-image resources from docker.io to ghcr.io/cloudfoundry using the github_read_write_packages credential already in CredHub: docker.io/bosh/agent → ghcr.io/cloudfoundry/bosh-agent docker.io/bosh/main-postgres-15 → ghcr.io/cloudfoundry/bosh/main-postgres-15 The integration-postgres-15 change fixes "Invalid CPI response - unexpected end of input" failures that started after the dummy CPI was extracted upstream. The GHCR image has `bundle config set --global path "${GEM_HOME}"` baked in, so bundled gems land in GEM_HOME; the CPI wrapper (cpi.erb) exports GEM_HOME into the subprocess, letting `require 'bundler/setup'` and `require 'cloud'` find all gems. Verified: bosh-integration-tests build 601 succeeded (1h9m, 0 failures) after this change. The bosh-agent image migration avoids Docker Hub rate limits for all CI tasks. Note: ghcr.io/cloudfoundry/bosh-agent does not exist yet. After merging, manually trigger build-docker-image once to bootstrap the GHCR package; all downstream jobs will then trigger normally via bosh-agent-registry-image. Resource types (bosh-deployment-resource, metalink-repository-resource, semver-resource) remain on Docker Hub — no GHCR equivalents exist for these Concourse worker plugins. ai-assisted=yes Co-authored-by: Cursor --- ci/pipeline.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ci/pipeline.yml b/ci/pipeline.yml index 1ca6a9534..9a075eab6 100644 --- a/ci/pipeline.yml +++ b/ci/pipeline.yml @@ -93,17 +93,17 @@ resources: - name: bosh-agent-docker-image type: registry-image source: - repository: docker.io/bosh/agent + repository: ghcr.io/cloudfoundry/bosh-agent tag: latest - username: ((docker.username)) - password: ((docker.password)) + username: ((github_read_write_packages.username)) + password: ((github_read_write_packages.password)) - name: bosh-agent-registry-image type: registry-image source: - repository: docker.io/bosh/agent - username: ((docker.username)) - password: ((docker.password)) + repository: ghcr.io/cloudfoundry/bosh-agent + username: ((github_read_write_packages.username)) + password: ((github_read_write_packages.password)) - name: golang-release-image type: registry-image @@ -113,10 +113,10 @@ resources: - name: integration-postgres-15-image type: registry-image source: - repository: docker.io/bosh/main-postgres-15 + repository: ghcr.io/cloudfoundry/bosh/main-postgres-15 tag: main - username: ((docker.username)) - password: ((docker.password)) + username: ((github_read_write_packages.username)) + password: ((github_read_write_packages.password)) - name: bosh type: git