High availability and resiliency of Jaeger in production environments
Currently, the official images for jaeger are on docker hub. Unless one has a docker paid account, image pulls will be rate-limited and pulls may fail at run-time, causing infrastructure issues.
$title: Push official images to quay.io, in addition to Docker Hub
We already have an organization where we push the jaeger operator https://quay.io/repository/jaegertracing/jaeger-operator
I propose that we also push all the other images to quay.io, in addition to the docker hub repository here: https://hub.docker.com/u/jaegertracing
None
I'm OK with this idea. @yurishkuro, what do you think?
_in addition_ sounds fine.
Thanks, I'll start to work on it this week :)
Hi @aditya-konarde, @jpkrohling
I'm an Outreachy applicant and would like to tackle this issue.
Sounds good. I haven't gotten the time to work on this yet, so please go ahead @aebirim :)
Hi @aditya-konarde will do!
Hi @jpkrohling, I've uploaded the 41 images to the quay.io platform. Some of the latest tags didn't work so used the next most recent one.
I've sent you a message on gitter.
@aebirim, ideally, we would push the images to both places during the release process. It's currently called during a Travis build here:
Take a look and see if you can follow what it's doing end-to-end, but I think you might need to change only two places:
scripts/travis/upload-all-docker-images.sh, to call the upload-to-docker.sh for both docker.io and for quay.ioscripts/travis/upload-to-docker.sh, to accommodate the case where images are pushed to quay.iocould we push github contrainer registry ghcr.io/jaegertracing/* too?
I don't mind having images pushed to more than one places, but it would be better to do it asynchronously, i.e. our build does a push to a single place (Docker Hub) and other repositories sync from there. Adding more pushes to the main build will only make it less reliable.
and other repositories sync from there
Do you know what can be used to do this? I don't remember seeing sync to/from Quay/GitHub/Docker.
@jpkrohling / @aebirim could be this effort refreshed please, I see PR is staled for ~1 month.
Asking because we are suffering by dockerhub rate limit apocalypse when running MicroProfile OpenTracing related tests.
We are able to propagate pull secret on OpenShift 4 to overcome this trouble, but on OCP 3.11 the same solution can't be applied.
We are looking at image alternatives available on Quay.io and jaeger image is one of the images pulled from docker hub.
@rsvoboda is there a specific version that you are using? I could push them to quay manually for the time being.
Hi Juca. No rush atm, we had applied workaround for current release, we will have new testing during January.
It would be ideal to have quay mirror by that time. If not, I would ask you for adhoc push ;)
Hi @jpkrohling, any update on quay.io effort? If no, I will look into the image versions I would like to pull from quay.io. Thanks.
I don't have news at the moment. There is a PR that would make it possible to send the same image to other repositories, but it hasn't been merged either. For now, do let me know which images you'd need there and I'll push them manually.
We use jaegertracing/all-in-one, we do not specify concrete version though, just pulling the latest.
We can depend on concrete version for now, for example 1.21.0. Hope this issue gets resolved soon.
Did some searching on quay.io (https://quay.io/search?q=jaegertracing) and some people do their own "mirrors".
quay.io/jaegertracing/all-in-one:1.21.0 is now available
https://quay.io/jaegertracing/all-in-one gives 403 Unauthorized, isn't the repository set to private?
I can access ^^^ now, thanks
could a latest be defined so we don't have to specify the version ?
Done. Note that until we have a proper publishing mechanism for quay, there's a risk that latest won't necessarily match the latest we have in Docker Hub
Most helpful comment
@aebirim, ideally, we would push the images to both places during the release process. It's currently called during a Travis build here:
https://github.com/jaegertracing/jaeger/blob/0f88343172c0bb16ad5c1805d18e20d59176ea7e/.travis.yml#L73-L74
Take a look and see if you can follow what it's doing end-to-end, but I think you might need to change only two places:
scripts/travis/upload-all-docker-images.sh, to call theupload-to-docker.shfor bothdocker.ioand forquay.ioscripts/travis/upload-to-docker.sh, to accommodate the case where images are pushed toquay.io