feat(k3d): extend K8s version matrix to v1.33, v1.34, v1.35 ARM64
What does this MR do?
Extends the k3d per-job review environment matrix to cover the same Kubernetes
versions as the existing vcluster jobs (v1.33, v1.34, v1.35 AMD64 + v1.35
ARM64), using a single parallel:matrix bridge per architecture rather than
per-version bridge jobs or per-version pipeline files.
Picks up !5041 (merged)'s k3d_collect_debug artifact onto the new template structure,
and updates scripts/ci/install_spec_dependencies.sh so the ARM64 child
pipeline can install its own gomplate / helm / kubectl.
What's added:
k3d:bridge in.gitlab-ci.yml(parallel:matrix) — runs v1.33, v1.34, v1.35 AMD64. v1.35 (K3D_PRIMARY=primary) auto-runs on MR/default; v1.33 and v1.34 are manual.k3d_arm64:bridge in.gitlab-ci.yml(parallel:matrix) — runs v1.35 ARM64. Manual on MR/default; auto on nightly/stable..gitlab/ci/k3d-templates.gitlab-ci.yml— base templates (.k3d_base,.k3d_qa_template,.k3d_review_specs_template), renamed fromk3d-review-apps.gitlab-ci.yml. Adds aGIT_CLONE_PATH: /builds/gitlaboverride to work aroundCI_BUILDS_DIRbeing unavailable at pipeline-creation time in child pipelines (gitlab-org/gitlab#220047). Wiresk3d_collect_debuginto both templates'after_scriptand adds./k3d-debug/to their artifact paths, mirroring !5041 (merged)..gitlab/ci/k3d-version-pipeline.gitlab-ci.yml— AMD64 child pipeline.review_specs_k3dandqa_k3djobs in stagespecs, each depending on the parent pipeline'spin_image_versionsvia cross-pipelineneeds..gitlab/ci/k3d-version-pipeline-arm64.gitlab-ci.yml— ARM64 variant using thesaas-linux-large-arm64runner and aruby:3.3.7ARM64 image.scripts/ci/install_spec_dependencies.sh— make gomplate / helm / kubectl downloads architecture-aware (x86_64 → amd64, aarch64 → arm64).
What's removed:
.gitlab/ci/environments/k3d.135.amd64.gitlab-ci.yml— the single-version PoC environment is superseded by the parallel matrix and the version-agnostic child pipeline.trigger-k3d135andtrigger-k3d135-nginxjobs in.gitlab-ci.yml— replaced by the newk3d:/k3d_arm64:bridges. The ingress / Envoy split is no longer relevant now that k3d defaults to Envoy in CI (!4984 (merged)).
The bridge jobs intentionally do not declare
needs: pin_image_versions. The child jobs (review_specs_k3d, qa_k3d)
still depend on the parent's pin_image_versions via cross-pipeline
needs, matching the pattern landed in !5045 (merged) (655efeab4) for the
existing trigger_review_* jobs.
Related issues
Part of #6421.
Builds on top of !4967 (merged) (k3d PoC, merged) and !4984 (merged) (Envoy Gateway default, merged). After this lands, !4983 (merged) (manual full-suite QA jobs) and !4985 (merged) (remove vcluster/EKS) can rebase onto master directly.
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.