oscerd opened a new pull request, #747:
URL: https://github.com/apache/camel-karaf/pull/747
## What
`CamelGooglePubsubITest` pinned
`gcr.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:
```
ContainerFetchException: Can't get Docker image: RemoteDockerImage(
imageName=gcr.io/google.com/cloudsdktool/google-cloud-cli:441.0.0-emulators,
...)
Caused by: NotFoundException: Status 404:
{"message":"manifest for ...:441.0.0-emulators not found: manifest
unknown"}
```
## This is not a per-branch problem
`main` has 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 recent `main` runs — the merges of #737, #739 and #707 — all failed with
this same `CamelGooglePubsubITest.initializationError` and nothing else.
It is the only `gcr.io` image 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-cli` tags —
currently 49, from `537.0.0-emulators` up — and deletes older ones outright
rather than archiving them. `441.0.0` aged 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 `emulators` tag. 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 found`
- `docker pull ...:583.0.0-emulators` → pulls,
`sha256:07e4b8c3075ca793552fcfaf4808f104ef155d7805d87ade8e01b440463be262`
- the registry tag list confirms 49 `-emulators` tags, `441.0.0-emulators`
absent
- **the test itself passes locally against the new image**, so the emulator
API is still compatible across the 142 releases in between:
```
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 29.07 s
-- in org.apache.karaf.camel.itest.CamelGooglePubsubITest
BUILD SUCCESS
```
## Note
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.com/claude-code)
https://claude.ai/code/session_01NUwMcSUX951L1pqhiGkC6g
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]