Skip to content

fix(#745): bump the Pub/Sub emulator image to a tag gcr.io still serves - #746

Merged
jbonofre merged 1 commit into
apache:mainfrom
jbonofre:fix-745-pubsub-emulator-image-tag
Sep 2, 2026
Merged

jbonofre merged 1 commit into
apache:mainfrom
jbonofre:fix-745-pubsub-emulator-image-tag

Conversation

@jbonofre

@jbonofre jbonofre commented Sep 1, 2026

Copy link
Copy Markdown
Member

Fixes #745.

Problem

Every Test (Java 17) / Test (Java 21) job fails in camel-google-pubsub-test:

CamelGooglePubsubITest.initializationError
  » ContainerFetch Can't get Docker image:
    gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators

Caused by: NotFoundException: Status 404: manifest for ...:441.0.0-emulators
  not found: manifest unknown

The tag pinned in CamelGooglePubsubITest (added in aca82e1, #379) has been pruned from gcr.io. Querying the registry today: google-cloud-cli serves 2076 tags, of which only 49 match X.Y.Z-emulators, spanning 537.0.0-emulators to 583.0.0-emulators. 441.0.0-emulators returns a 404 manifest; 583.0.0-emulators returns 200.

So the registry keeps a rolling window of roughly the last 49 releases — the pin was always going to rot, and it has.

This is not specific to any one PR: the push build for 6f2d1e2 on main fails identically (run 33491325010). Because the reactor halts at this module, 33 later modules are skipped, so no PR can currently get a green Test job and regressions in later modules are invisible.

Fix

Bump the pin to 583.0.0-emulators and lift it into a named constant carrying a comment about the retention window, so the next occurrence is diagnosable instead of mysterious.

Nothing else in the test changes. It drives the emulator through the stable TopicAdminClient / SubscriptionAdminClient admin APIs and the default emulator port (8085), none of which differ across these image versions, and Testcontainers 2.0.3's PubSubEmulatorContainer supplies the startup command.

Scope

I checked the other four pinned test images while I was here — confluentinc/cp-kafka:7.6.1, influxdb:2.0.7, localstack/localstack:3.4.0 and rabbitmq:3.13.1 all still resolve, so only the gcr.io pin was affected and the other four are untouched.

On pinning vs. floating

I kept an exact pin, matching the convention used by the other four images: it stays reproducible, and the comment tells the next person what to do. The trade-off is that this will rot again in about a year.

The alternative is the floating emulators tag, which never 404s but gives up reproducibility and can change emulator behaviour under the test without warning. Happy to switch if reviewers would rather not revisit this — it is a one-word change.

Verification

  • Registry state verified directly against the gcr.io v2 API: old tag 404, new tag 200, retention window as described above.
  • The itest itself is not run locally — I have no Docker available in this environment — so the actual container start-up is validated by CI on this PR, which is precisely the check that was failing.
  • Expect this PR's Test jobs to get past camel-google-pubsub-test and, for the first time in a while, exercise the 33 modules that were being skipped. Those modules have not had CI coverage since the tag was pruned, so please treat any new failure they surface as pre-existing rather than caused by this change.

Claude Code on behalf of JB Onofré

…l serves

CamelGooglePubsubITest pinned
gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators, which
Google has pruned from the registry. Testcontainers fails the container
fetch with "manifest unknown", the module errors out in
initializationError, and the reactor halts there, skipping 33 later
modules. main has been red since then.

The registry keeps only a rolling window of the most recent emulator
tags (49 at the time of writing, 537.0.0 through 583.0.0), so the pin
was always going to rot. Bump it to 583.0.0-emulators and record the
retention behaviour in a comment so the next bump is not a mystery.

The other four pinned test images (cp-kafka, influxdb, localstack,
rabbitmq) still resolve and are untouched.
@jbonofre
jbonofre merged commit 60b7548 into apache:main Sep 2, 2026
3 checks passed
@jbonofre
jbonofre deleted the fix-745-pubsub-emulator-image-tag branch September 2, 2026 13:57
jbonofre added a commit that referenced this pull request Sep 6, 2026
…still serves (#750)

Backport of #746.

CamelGooglePubsubITest on this branch still pins
gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators. That tag
still resolved on 2026-08-28 -- the CI run for PR #742 pulled it successfully
-- but gcr.io keeps only a rolling window of the most recent emulator tags, so
the pin has since stopped resolving.

The failure mode is the one #746 described on main: Testcontainers fails the
container fetch with "manifest unknown", the itest errors out in
initializationError, and the reactor halts at camel-google-pubsub-test,
skipping every later module. That blocks meaningful CI on the 4.18.x line,
including PR #742.

Bump it to 583.0.0-emulators and keep the comment recording the registry
retention behaviour, so the next bump is not a mystery.

The other four pinned test images (cp-kafka, influxdb, localstack, rabbitmq)
are untouched.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

camel-google-pubsub itest pins a Pub/Sub emulator image tag that gcr.io no longer serves, breaking CI on main

2 participants