ci: bump the Google Cloud SDK emulator image to a tag that still exists - #747
Open
oscerd wants to merge 1 commit into
Open
ci: bump the Google Cloud SDK emulator image to a tag that still exists#747oscerd wants to merge 1 commit into
oscerd wants to merge 1 commit into
Conversation
CamelGooglePubsubITest pinned gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators. That tag has been deleted from gcr.io, so the test now fails at class initialisation with ContainerFetchException: Can't get Docker image Caused by: NotFoundException: Status 404: manifest unknown on both Java 17 and Java 21. It is the only gcr.io image in the tree; the other testcontainers pins are Docker Hub images, which are unaffected. This is not specific to any one branch - main has been red since 2026-08-27 and every open pull request fails the same way, because the surefire run aborts the whole reactor on it. gcr.io keeps only a rolling window of google-cloud-cli tags, currently 49 of them from 537.0.0-emulators up, and deletes older ones outright rather than archiving them. 441.0.0 fell out of that window. Moved to 583.0.0-emulators, the newest available, which buys the most time before the next eviction, and left a comment saying what happens when it recurs. The floating "emulators" tag would never 404 but would make the build non-reproducible, which is the opposite of the direction apache#731 took the build. Verified rather than assumed: 441.0.0-emulators returns 404 from a real docker pull, 583.0.0-emulators pulls (sha256:07e4b8c3075ca793552fcfaf4808f104ef155d780 5d87ade8e01b440463be262), and the test itself passes against it locally - Tests run: 1, Failures: 0, Errors: 0 - so the emulator API is still compatible across the 142 releases in between. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUwMcSUX951L1pqhiGkC6g
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
CamelGooglePubsubITestpinnedgcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators. That tag no longer exists on gcr.io, so the test fails at class initialisation:This is not a per-branch problem
mainhas been red since 2026-08-27 and every open PR fails identically, on both Java 17 and Java 21, because surefire aborts the reactor on it. The three most recentmainruns — the merges of #737, #739 and #707 — all failed with this sameCamelGooglePubsubITest.initializationErrorand nothing else.It is the only
gcr.ioimage in the tree. The other testcontainers pins (localstack,influxdb,confluentinc/cp-kafka,rabbitmq, Debezium) are Docker Hub images and are unaffected.Why it happened, and why it will happen again
gcr.io keeps only a rolling window of
google-cloud-clitags — currently 49, from537.0.0-emulatorsup — and deletes older ones outright rather than archiving them.441.0.0aged out of that window.Moved to
583.0.0-emulators, the newest available, which buys the most time before the next eviction, with a comment at the call site explaining the failure mode so the next person does not have to re-derive it from a 404.I did not use the floating
emulatorstag. It would never 404, but it would make the build non-reproducible and let the emulator change underneath us, which is the opposite of the direction #731 took the build.Verified, not assumed
docker pull ...:441.0.0-emulators→not founddocker pull ...:583.0.0-emulators→ pulls,sha256:07e4b8c3075ca793552fcfaf4808f104ef155d7805d87ade8e01b440463be262-emulatorstags,441.0.0-emulatorsabsentNote
Worth considering separately whether these itests should fail soft when an external image cannot be fetched, so that an upstream registry change degrades one module instead of taking down every build in the project.
Claude Code on behalf of Andrea Cosentino
🤖 Generated with Claude Code
https://claude.ai/code/session_01NUwMcSUX951L1pqhiGkC6g