Switch jobs to Kubernetes

What does this MR do?

Summary

  • Migrate CI/CD jobs from shared runners to Kubernetes runners
  • Switching between kubernetes runners and gitlab-org runners is easy
  • Add note about blue/green kubernetes runners
  • Extract Kubernetes runner configuration to a dedicated include file for better maintainability

Changes

New Kubernetes runner configuration

  • New file: .gitlab/ci/_kubernetes.gitlab-ci.yml - centralized Kubernetes runner configuration
  • Defines resource limits for different job types (unit tests, generated file checks)
  • Configures CPU and memory requests/limits for optimal pod scheduling. Removed CPU limits to allow for better CPU utilization.

CI job migration

  • Applied .kubernetes runner extension to 20+ CI jobs across multiple stages:
    • Build stage: clone test repo, rpm verify fips
    • QA stage: All QA jobs including version checks, module validation, generated file checks, mage tests, and documentation linting
    • Test stage: fuzz variable mask
    • Coverage stage: test coverage report
    • Package stage: All packaging jobs
    • Postrelease stage: package test variables, static QA, stable gitlab release
    • Docs stage: Documentation review jobs

Why was this MR needed?

What's the best way to test this MR?

What are the relevant issue numbers?

Closes [K8S Dogfooding] Deploy more runners and integr... (#38460 - closed) • Georgi N. Georgiev | GitLab • 18.2

Edited by Georgi N. Georgiev | GitLab

Merge request reports

Loading