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.