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 from k3d-review-apps.gitlab-ci.yml. Adds a GIT_CLONE_PATH: /builds/gitlab override to work around CI_BUILDS_DIR being unavailable at pipeline-creation time in child pipelines (gitlab-org/gitlab#220047). Wires k3d_collect_debug into both templates' after_script and adds ./k3d-debug/ to their artifact paths, mirroring !5041 (merged).
  • .gitlab/ci/k3d-version-pipeline.gitlab-ci.yml — AMD64 child pipeline. review_specs_k3d and qa_k3d jobs in stage specs, each depending on the parent pipeline's pin_image_versions via cross-pipeline needs.
  • .gitlab/ci/k3d-version-pipeline-arm64.gitlab-ci.yml — ARM64 variant using the saas-linux-large-arm64 runner and a ruby:3.3.7 ARM64 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-k3d135 and trigger-k3d135-nginx jobs in .gitlab-ci.yml — replaced by the new k3d: / 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.

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

Edited by João Alexandre Cunha

Merge request reports

Loading