test(e2e): run the e2e suites against released GitLab versions

What does this MR do and why?

The e2e suites only run against GitLab master, so nothing tests Orbit against the GitLab releases that get Orbit backports, such as the 19.5 backport. This adds an e2e-gitlab-stable job with one matrix entry per released version, starting with 19.5. It is manual on MRs and runs on its own schedule and on the pin-bump MR, so it never blocks a merge.

Relates to the 19.5 Orbit backport: gitlab-org/gitlab!263724 (merged)

Testing

  • e2e-gitlab-stable: [19-5]: 71 of 71 tests pass on GitLab 19.5 with the backport (chart 10.5.1, 19-5-stable-ee @ e4383f16).
  • e2e: 71 of 71 pass on master, so the shared scripts still work.
  • Locally, the master values render the same as on main. The bump script still bumps master and skips the hand-pinned 19.5 lane.

Performance Analysis

  • This merge request does not introduce any performance regression. If a performance regression is expected, explain why.
Agent context: long-form analysis, file-by-file walkthroughs, profiler output, alternatives considered

How the lane works

  • versions.yaml gets a gitlab_lanes."19-5" block with the same keys as gitlab:, plus an optional repository for the CNG images.
  • E2E_GITLAB_LANE=19-5 makes lib.sh set GITLAB_PINS to that block. publish-siphon-tables.sh, sync-cdc-tables.sh and bump-gitlab-pins.sh read and write the pins through it.
  • helmfile.yaml.gotmpl and values/gitlab.yaml.gotmpl pick the same block from the env var. Missing optional keys default to the master values.
  • bump-gitlab-pins.sh with the lane takes the newest v19.5.* chart from charts.gitlab.io, the 19-5-stable-ee head, and the CNG 19-5-stable digests.
  • The job sets E2E_SUFFIX=-gl19-5, so its namespaces do not collide with the e2e job of the same SHA.

Why the 19.5 lane uses cng-mirror images

  • The CNG 19-5-stable images build from the v19.5.1-ee tag, which does not have the backport.
  • The lane uses the cng-mirror images from the backport MR pipeline at e511a413. That commit has the same tree as e4383f16, the 19-5-stable-ee head after the merge.
  • A lane that sets repository is pinned by hand, so bump-gitlab-pins.sh skips it. When a 19.5 patch release ships with the backport, remove repository to put the lane back on the automated bump.

Done outside the diff

  • Published the siphon-ssot-tables package for 19-5-stable-ee @ e4383f16, which the lane's setup downloads.

Follow-ups

  • A maintainer must add a pipeline schedule with SCHEDULE_ONLY=e2e-gitlab-stable.
  • Setup does not wait for the Siphon producer to finish its initial snapshots. One 19.5 run failed when the 120 s health check expired with 52 of 84 tables done. The same race can hit e2e on master.
Edited by Jean-Gabriel Doyon

Merge request reports

Loading
Loading