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 (mirrorsvcluster_deploy.sh, writes nip.io URL toVARIABLES_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 behindLIMIT_TO=k3d135- Updated
scripts/ci/autodevops.shandscripts/ci/lib/helpers.sh— k3d-awareset_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).
Related issues
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
- MR has a green pipeline on https://gitlab.com/gitlab-org/charts/gitlab.
- Consider downstream impact to the Operator, as per evaluating impact from changes to GitLab chart.
Edited by João Alexandre Cunha