Migrate registry.fedoraproject.org to quay.io

Purpose

This investigation is looking into service quay.io and how can we utilize it for the projects hosted on registry.fedoraproject.org. It should also resolve if this is work should be initiative.

Resources

Requirements

  • Multi Arch containers (Already supported on quay.io)

  • OCI images (Already supported on quay.io)

  • Web interface (Quay.io already has web interface)

  • Integrate Quay.io in current workflow

  • Must not affect users of images

  • candidate-registry must be moved as well

Nice to have

  • Staging namespace on quay.io

Risks

  • There is a API endpoint throttling per second on IP address on quay.io. This could cause issues in the future, but current load should be easily handled.

Statistics

These statistical data were retrieved from oci-registry.iad2.fedoraproject.org machine logs. The logs on the machine are kept only for few days. These data were obtained from 16th September 2023 to 21st September 2023 (it corresponds with release of Fedora 39 Beta).

  • Number of downloads per day: 800 - 1 000

  • Number of requests per day: 350 000 - 400 000

Investigation

The investigation is separated to multiple parts based on the current artifacts hosted on registry: Fedora flatpaks, Fedora container images (base, minimal, coreos) and toolbox images.

Conclusions

Migrating registry.fedoraproject.org to quay.io doesn’t seem to be initiative worthy. Especially with changes happening in Fedora 39. There needs to be changes done to all three build pipelines we investigated, but those aren’t complex.

Recommendations

It will be best to first set everything on staging and then continue with production. Only redirect the Fedora 39+ workflow and continue with step 4 after Fedora 38 will be EOL.

Proposed Roadmap

  • Step 1 - Create namespaces corresponding to candidate-registry and registry on quay.io (Optional: Create staging namespaces as well)

  • Step 2 - Modify configurations and scripts (see corresponding investigation document for what needs to be changed)

  • Step 3 - Redirect proxies to quay.io

  • Step 4 - Decommision candidate-registry and candidate-registry

Estimate of work

This should be handled as normal ticket. It would need 1 sysadmin for 2-4 weeks.