balena-io / etcher

Flash OS images to SD cards & USB drives, safely and easily.
https://etcher.io/
Apache License 2.0
28.74k stars 2.05k forks source link

Strategies to handle Linux package download limits #4058

Open ABCMoNa opened 1 year ago

ABCMoNa commented 1 year ago

I'm suggesting to use this issue to identify strategies to counter the recurring issue of 3rd party hosted Linux package repositories hitting download volume limits (#4034).

I can currently think of the following approaches:

What do think about those suggestions? Which other strategies seem worthwhile?

Are download statistics available / can they be made available? (Ideally for monthly download volume per location / file / distro + version)?

Thanks! (Feel free to remove this issue if it does not seem to contribute to your fact finding.)

dmaes commented 1 year ago

Suggestion: OpenSUSE's OBS (build.opensuse.org) supports both RPM and DEB, and is free as far as I can see (https://en.opensuse.org/openSUSE:Build_Service_Terms_of_Service#K._Payment)

aethernet commented 1 year ago

Hello,

Run own mirror(s) and repository management software (@aethernet mentioned "CloudFlare R2 + workers" )

As Balena already has a CF enterprise account with unlimited bandwidth.

There's indeed a maintenance cost but it feels reasonable. Another - may be simpler - option would be CloudFlare Pages instead of R2 + Workers. I saw guides on how to host on GitHub Pages and they're similar in terms of functionalities.

To be manageable on our side it would need to be automated as part of the CI. It needs to be a FlowZone step so it runs on a GH worker, which takes the packages that already exist, signs them, creates the repositories metadata files then uploads everything to CF Pages.