adoptium / infrastructure

This repo contains all information about machine maintenance.
Apache License 2.0
86 stars 101 forks source link

A download server for linux packages for AdoptOpenJDK #1002

Closed aahlenst closed 7 months ago

aahlenst commented 5 years ago

We've been using an Artifactory instance sponsored by JFrog for roughly half a year to host Linux packages of AdoptOpenJDK. There's work underway to host our flavour of JMC there, too. I'd like to reconsider whether we're on the right track here:

There are various reason I'd like to reconsider our choice of Artifactory:

My objective is to collect a list of requirements first so that we can check the various options out before coming up with an actionable proposal.

aahlenst commented 5 years ago

From the perspective of the Linux packages:

thegreystone commented 4 years ago

Sounds excellent. Having the JMC update sites on a download server would be great. Something along the lines of:

https://<baseurl>/jmc/updatesites/latest/ide/ https://<baseurl>/jmc/updatesites/latest/rcp/ https://<baseurl>/jmc/updatesites/7.0.0/ide/ https://<baseurl>/jmc/updatesites/7.0.0/rcp/ https://<baseurl>/jmc/updatesites/7.1.0/ide/ https://<baseurl>/jmc/updatesites/7.1.0/rcp/

thegreystone commented 4 years ago

Note that once we have published the update sites, we should re-spin and re-publish the application builds, including 7.0.0 and 7.1.0, with correct overrides for the URLs. Then it will finally be possible to install the optional plug-ins. :)

aahlenst commented 4 years ago

Rough idea using AWS terminology:

architecture_sketch

The Jenkins nodes push build artifacts to an upload server using restricted SFTP. The upload server keeps a local copy of all files. It is responsible for generating package indices and signing files. This cannot be done on Jenkins nodes because reprepro needs all packages on a local disk to generate the package indices. The upload server syncs its local copy of all files with a S3 bucket. From there, our users download the files via Cloudfront.

The AdoptOpenJDK GPG key needs to be stored on the upload server. Therefore, it has to be locked down.

Questions:

As soon as we have a proposal everybody is happy with, I'll do a test setup so that we can verify that it actually works as expected.

thegreystone commented 4 years ago

Sound reasonable to me, but I'm not directly involved in these part. Patrick (@reinhapa), what do you think?

reinhapa commented 4 years ago

I have no specific opinion about this, but I will need some help getting the update sites to be working later down the process though...

thegreystone commented 4 years ago

@aahlenst - when do you think the test setup will be available?

aahlenst commented 4 years ago

I cannot give any estimates. Won't happen until mid of February for sure except someone steps up to help. Happy to talk anyone through it.

aahlenst commented 4 years ago

Requirements we have:

The storage and bandwidth requirements are estimates. It's very hard to get that info out of Artifactory.

I did some further research on options:

lskillen commented 4 years ago

Hey folks / @aahlenst; Lee from @cloudsmith-io here. We're happy to help if we can. We're firm believers in data portability and reducing vendor lock-in, which is why we offer things like the custom domains support. If P2 is critical, we can see about prioritising it for you.

sxa commented 7 months ago

I'm going to close this since we're currently remaining with JFrog with Fastly fronting it, although that is giving intermittent HTTP/403 responses for some users as per https://github.com/adoptium/adoptium-support/issues/923