Container Image Location

Problem

We’re currently storing container images on many different registries:

  • Docker Hub

  • Quay.io

  • GitHub Container Registry (GHCR)

  • OpenShift integrated registry

  • GitLab integrated registry (registry.vshn.net)

Lately Docker Hub has become a pain, they introduced nasty rate limits which makes it very complex to work with it, and they wanted to cut the "Free Plan" at very short notice (although they reverted their decision again: ref 1 / ref 2). We even run an under-maintained Docker Hub image cache to circumvent the issues they introduced, which sooner or later will bite us.

Because of these circumstances, we want to clearly define where we store container images.

Proposals

Proposal 1 - Don’t change anything

We don’t change the status quo and don’t specify rules where to store container images.

Proposal 2 - Use the same place as the code is stored

Use the GitHub Container registry to store images for code which is stored on GitHub (Open Source code) and the GitLab integrated container registry at registry.vshn.net for code which is stored on our internal GitLab and therefore seen as private.

Decision

Use the same place as the code is stored.

We want to migrate away from all other registries over time and ultimately close our accounts there once everything is gone.

Rationale

Not changing anything and keeping the status quo could and will bite us in the future and infer stability issues. Storing container images where the code already is makes the whole process much easier (pipelines will "just work") and makes it clear where to look for artifacts.

This has been discussed and decided in the Tech Alignment Work Group meeting at 2023-03-28.