Skip to content

[templates] Add E2E.gitlab-ci.yml reusable storage-e2e pipeline#91

Open
duckhawk wants to merge 3 commits into
mainfrom
feat/e2e-gitlab-template
Open

[templates] Add E2E.gitlab-ci.yml reusable storage-e2e pipeline#91
duckhawk wants to merge 3 commits into
mainfrom
feat/e2e-gitlab-template

Conversation

@duckhawk

Copy link
Copy Markdown
Member

Adds a reusable GitLab CI template that ports the storage-e2e GitHub reusable workflow: resolve -> bootstrap -> run -> teardown jobs driving cmd/bootstrap-cluster, cmd/remove-cluster and e2e-run-tests.sh via the commander provider.

  • Runs on the storage-test runner; overrides the werf/trdl before_script with a self-contained Go toolchain bootstrap.
  • Gated on the e2e/commander/run MR label; teardown is when: always (respects e2e/keep-cluster).
  • Keeps Go caches outside the checkout and sets GIT_CLEAN_FLAGS: none so a persistent shell runner's read-only Go module cache does not break git clean between jobs.
  • Multi-line secrets (SSH keys, CA cert) supplied base64-encoded (*_B64) and decoded in-job; self-signed Commander certs supported via E2E_COMMANDER_INSECURE_SKIP_TLS_VERIFY.

Consumers connect it with a single include line plus the e2e/e2e_teardown stages. Already in use by csi-huawei (e2e passing 9/9) and wired into csi-hpe/csi-netapp/csi-s3.

These are the commits currently released on the v14.0 branch.

duckhawk added 3 commits July 17, 2026 18:31
Port of the storage-e2e GitHub reusable workflow to GitLab: resolve ->
bootstrap -> run -> teardown jobs driving cmd/bootstrap-cluster,
cmd/remove-cluster and e2e-run-tests.sh via the commander provider.

Runs on the storage-test runner, gated on the e2e/commander/run MR label,
config-driven with defaults so a module connects it with a single include
line plus the e2e/e2e_teardown stages.

Signed-off-by: v.oleynikov <vasily.oleynikov@flant.com>
Go marks module-cache dirs read-only (0555); with GOMODCACHE inside
$CI_PROJECT_DIR, GitLab's git clean between jobs failed with Permission
denied and aborted e2e jobs on the persistent shell runner. Move all Go
state under $HOME/.cache, set GIT_CLEAN_FLAGS: none, and purge any stale
in-checkout caches in before_script.

Signed-off-by: v.oleynikov <vasily.oleynikov@flant.com>
…r name

Rename templates/E2E.gitlab-ci.yml -> templates/storage-e2e.gitlab-ci.yml.
The resolve job now appends a random 4-char hex suffix (e.g. -a5b6) to the
per-MR namespace/cluster name so each run is unique and two runs never collide
on the same cluster.

Signed-off-by: v.oleynikov <vasily.oleynikov@flant.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant