PoC: k3d per-job review environments (LIMIT_TO=k3d135)

What does this MR do?

Implements a PoC for per-job k3d review environments as proposed in #6421. Each CI job gets its own isolated k3d (k3s-in-Docker) cluster, eliminating the shared GKE host that causes pod scheduling timeouts.

What's added:

  • scripts/ci/k3d.sh — cluster lifecycle (install, create, kubeconfig, delete)
  • scripts/ci/k3d_deploy.sh — deploy wrapper (mirrors vcluster_deploy.sh, writes nip.io URL to VARIABLES_FILE)
  • .gitlab/ci/k3d-review-apps.gitlab-ci.yml — base CI template (each job self-contained: create → deploy → test → delete)
  • .gitlab/ci/environments/k3d.135.amd64.gitlab-ci.yml — v1.35 amd64 environment, gated behind LIMIT_TO=k3d135
  • Updated scripts/ci/autodevops.sh and scripts/ci/lib/helpers.sh — k3d-aware set_context() (no GitLab Agent, no ExternalDNS)

How to test: Set LIMIT_TO=k3d135 as a pipeline variable. The review_specs_k3d_v135 and qa_k3d_v135 jobs will each create an independent k3d cluster, deploy GitLab via nip.io, run tests, and self-destruct.

Implementation plan

This MR is part of a sequenced implementation. See issue #6421 for the full context and rationale.

# MR Description Status
1 !4967 (merged) k3d PoC — single environment (v1.35 amd64, NGINX ingress) In review
2 !4984 (merged) Switch networking to Envoy Gateway API Waiting for the previews MR to be merged
3 !4982 (merged) Extend K8s version matrix (v1.33, v1.34, v1.35 ARM64) Waiting for the previews MR to be merged
4 !4983 (merged) Add manual full suite QA jobs Waiting for the previews MR to be merged
5 !4985 (merged) Remove vcluster/EKS environments Draft (WIP)

Each MR targets the previous branch and is blocked by it (see MR dependencies).

Part of #6421

Author checklist

For general guidance, please follow our Contributing guide.

Required

  • Merge Request Title and Description are up to date, accurate, and descriptive.
  • MR targeting the appropriate branch.
  • MR has a green pipeline.
  • Documentation created/updated.
  • Tests added/updated, and test plan for scenarios not covered by automated tests.
  • Equivalent MR/issue for omnibus-gitlab opened.

Reviewers checklist

Edited by João Alexandre Cunha

Merge request reports

Loading