freedesktop.org infrastructure

Our infrastructure falls into two categories.

GitLab

gitlab.fd.o is hosted on the Google Cloud Platform within us-east1, run on Kubernetes with Helm charts. The Helm charts and the Helm configuration used to deploy are both publicly available.

Repositories and the PostgreSQL database are both stored on persistent disks mapped into the Kubernetes service pods.

Docker Registry images, file uploads and attachments, and backups, are all stored within Google Cloud Storage buckets. Backups are retained for one week.

There are several shared runners available for all GitLab CI jobs:

Given the level of concurrency, you should aim for each job to parallelise with 4 concurrent processes.

It is possible to add runners for your own projects, however this has significant caveats. Most obviously, your runners should be faster than the shared runners, unless your goal is just to remove load from the shared runners. Speed of storage is quite important here, and you should also have a fast network to Google us-east1, especially if your pipeline has multiple stages, as the build contents are saved, uploaded, and re-downloaded, between each stage. If you need to run Docker-in-Docker (e.g. to build Docker images to execute in), your runner must have the privileged flag set, which means you must consider the host machine to be completely compromised as the root user. Using tools such as buildah, kaniko or img may help you avoid the need for a privileged runner.

If you would like to donate execution time for shared runners, please file an issue or contact the admins and we can discuss this. Our main considerations when accepting new runners are performance (should be similar to existing runners), reliability (should not unduly cause failures, or huge spikes in build times due to external load), and security.

How Git itself is served is in the Git page.

Everything else

All the other services are run on a small fleet of machines hosted at Portland State University. These machines all run Debian. They are all (with the exception of fruit?) virtual machines.

This list is not quite complete.

Primary service hosts:

Virtual machines:

Plans

Most of our planning is discussed in freedesktop/freedesktop issues on GitLab.

Contacts

The admins are reachable through GitLab issues or the sitewranglers list.