/susemanager-ci

CI infrastructure for SUSE Manager

Primary LanguageHCLMIT LicenseMIT

susemanager-ci

CI automation for SUSE Manager and Uyuni.

Contents

Jenkins pipeline definitions

This directory contains the Jenkins pipelines we use in Jenkins.

For details have look at jenkins_pipelines/README.md.

Configuration files for terracumber

This directory contains the configuration files for terracumber that are used by the test suite and the reference environment pipelines.

For details have a look at terracumber_config/README.md.

Mirroring hell at Pull Request testing

Downloading images and packages from download.opensuse.org is not reliable because when you try to do so, you get redirected to the openSUSE mirror infrastructure. This means:

  • You do not always get the same mirror. If you download from Provo, you use the mirror in Provo. If you download from your workstation, you download from the mirror that is closest to you.
  • It takes an uncertain amount of time for an image or package to be available in all the mirrors. Thus, if you try to download an image or package that was just built in the build service, you won't find that in the mirrors, yet.
  • If the image or package has not changed its name, mirrors do not update that file. For example, if you have images without the build number, which is very convenient to have (aka static links), new builds of the image are not propagated to the mirrors. The same happens for RPMs, for example, if you remove a project and create it again, the build number is going to reset and then you can easily have an RPM that has the same build number as before, meaning the filename is the same and so the mirror will not get updated.
  • Sometimes metadata and RPMs do not match. If you hit an "update window time", it could be that the metadata has been updated on that mirror but it has not finished downloading the RPM.
  • Even zypper has some code to manage metalinks, terraform libvirt does not, so if an image is not found close to your location, it is not found at all.

For all that, we had to skip all the openSUSE mirror infrastructure and provide alternative links.

For Pull Requests we have these alternative URLs:

Used image versions in the CI test suite

Version Minion SSH minion Client RH-like Deb-like Virthost Buildhost Terminal Controller Server Proxy
PR test Leap 15.5 Leap 15.5 - Rocky 8 Ubuntu 22.04 Leap 15.5 SLES 15 SP4 SLES 15 SP4 Leap 15.5 Leap 15.5 Leap 15.5
Uyuni Leap 15.5 Leap 15.5 - Rocky 8 Ubuntu 22.04 Leap 15.5 SLES 15 SP4 SLES 15 SP4 Leap 15.5 Leap 15.5 Leap 15.5
Uyuni Podman Leap 15.5 Leap 15.5 - Rocky 8 Ubuntu 22.04 Leap 15.5 SLES 15 SP4 SLES 15 SP4 Leap 15.5 Leap Micro 5.5 Leap Micro 5.5
HEAD SLES 15 SP4 SLES 15 SP4 - Rocky 8 Ubuntu 22.04 SLES 15 SP4 SLES 15 SP4 SLES 15 SP4 Leap 15.5 SLE Micro 5.5 SLE Micro 5.5
4.3 SLES 15 SP4 SLES 15 SP4 SLES 15 SP4 Rocky 8 Ubuntu 22.04 SLES 15 SP4 SLES 15 SP4 SLES 15 SP4 Leap 15.5 SLES 15 SP4 SLES 15 SP4
5.0 SLES 15 SP4 SLES 15 SP4 - Rocky 8 Ubuntu 22.04 SLES 15 SP4 SLES 15 SP4 SLES 15 SP4 Leap 15.5 SLE Micro 5.5 SLE Micro 5.5