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
---------
- Fedora Infrastructure ticket: https://pagure.io/fedora-infrastructure/issue/10386
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.
.. toctree::
:maxdepth: 1
flatpaks
toolbox
fedora_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.