Skip to content

Use runner base images

What does this MR do?

  • Uses https://gitlab.com/gitlab-org/ci-cd/runner-tools/base-images. This will ease security and maintenance updates of our image dependencies. By building these base images just when we need to, it also significantly reduces our runner pipeline duration.
  • Switches to buildx bake for the images produced. We now just have to add runner and runner-helper binaries on top of the base images. The use of a bakefile removes many scripts making that process easier to maintain.
  • Images are now built and pushed always as a two-step process, whereas before, we'd occasionally need to build and push immediately. This provides more control over image releasing and paves the way for release "promoting" (which we'll address as a follow-up).
  • All images (including Windows images) are now built on Linux CI nodes, and we don't incur the overhead of Windows nodes.
  • Refactors the pipeline removing some stages (such as prerelease) and splitting some test jobs out into a separate qa stage. Some job dependencies were updated to optimise pipeline duration.
  • Rather than one large CI image (which can take 1m to download), we're now in a position to split the CI image into smaller images per job. This is only done for the prebuilding helper image job at the moment, but can be extended to other jobs. This reduces the amount of time taken to start a job.
  • There's now just one Go binary (linux, windows) and it can produce FIPs enabled binaries. In addition it's using an improvement that will be available in 1.24 to improve test caching.

What are the relevant issue numbers?

Closes #38322 (closed)

Edited by Arran Walker

Merge request reports

Loading