Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
ee3618b
ci(e2e): pin e2e pipeline to the storage-e2e commander branch (#33)
duckhawk Jun 29, 2026
bcf72cf
chore(e2e): bump storage-e2e to the commander branch (deps for go mod…
duckhawk Jul 1, 2026
d09d390
test(e2e): wait for the sds-object controller/webhook to be Ready
duckhawk Jul 1, 2026
a69324e
chore(e2e): re-pin storage-e2e to rebased commander branch
duckhawk Jul 1, 2026
7dc4d9a
fix(garage): empty the bucket before delete (reclaimPolicy=Delete)
duckhawk Jul 1, 2026
45d9f6a
test(e2e): add Lightweight (Garage on PVC) profile specs
duckhawk Jul 1, 2026
dafb933
test(e2e): add Full (SeaweedFS + managed-postgres) profile specs
duckhawk Jul 1, 2026
68dbcc1
fix(seaweedfs): make ensurePostgres idempotent + log pg creds waits
duckhawk Jul 1, 2026
429b3fd
chore(e2e): re-pin storage-e2e to rebased PR#33 commit (0c7365d)
duckhawk Jul 1, 2026
13b3212
fix(seaweedfs): tolerate managed-postgres withdrawing the creds host
duckhawk Jul 1, 2026
981ee15
chore(e2e): adapt to storage-e2e#33 realignment (re-pin 33c3a52)
duckhawk Jul 1, 2026
2bbbfce
chore(e2e): re-pin storage-e2e to e68a0e2 (connect no longer needs TE…
duckhawk Jul 1, 2026
9e4c234
chore(e2e): re-pin storage-e2e to 4e419c5 (suite tunnel lifetime fix)
duckhawk Jul 1, 2026
feac194
fix(seaweedfs): set the required postgres2 createTable in filer.toml
duckhawk Jul 1, 2026
251dd9f
fix(seaweedfs): stop regenerating the filer DB password each reconcile
duckhawk Jul 2, 2026
af608c5
test(e2e): add Heavy (Ceph RGW on sds-elastic) profile specs
duckhawk Jul 2, 2026
8e5a5cd
chore(e2e): re-pin storage-e2e to 8b53aa3 (module enablement folded i…
duckhawk Jul 2, 2026
ee06a9c
chore(e2e): re-pin storage-e2e to c28824d (suite connects via Provide…
duckhawk Jul 2, 2026
418cc40
chore(e2e): re-pin storage-e2e to 3c2055f; docs reflect bootstrap-sid…
duckhawk Jul 2, 2026
b524956
ci(e2e): switch storage-e2e refs to main (deckhouse/storage-e2e#33 me…
duckhawk Jul 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,22 @@ jobs:
e2e:
# Gate: run only when the PR is labeled e2e/run.
if: ${{ contains(github.event.pull_request.labels.*.name, 'e2e/run') }}
# storage-e2e main carries the commander provider, in-process connect (SSH
# tunnel + kubeconfig fetch) and bootstrap-side module enablement (merged in
# deckhouse/storage-e2e#25 + #33).
uses: deckhouse/storage-e2e/.github/workflows/e2e.yml@main
with:
module_slug: sds-object
# The e2e Go module lives under e2e/; tests are in e2e/tests/.
module_path: e2e
test_package: ./tests/
# CI config: modulePullOverride is ${E2E_MODULE_IMAGE_TAG}, resolved by the
# enable-modules step to the PR image tag below.
# CI config: modulePullOverride is ${E2E_MODULE_IMAGE_TAG}, resolved during
# bootstrap (module enablement) to the PR image tag below.
cluster_config: e2e/tests/cluster_config.ci.yml
# Create a fresh cluster through Deckhouse Commander for each run.
cluster_provider: commander
# Check out the same storage-e2e ref for scripts / cmd / Go code.
storage_e2e_ref: main
# Install the image built for this PR (build_dev publishes the pr<N> tag).
module_image_tag: pr${{ github.event.pull_request.number }}
secrets: inherit
17 changes: 9 additions & 8 deletions e2e/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,15 @@ Other labels:
The Commander endpoint, token and template come from inherited org/repo secrets
and vars (`E2E_COMMANDER_*`); see `storage-e2e` `docs/CI.md` for the full list.

Pipeline flow (`resolve → bootstrap → enable-modules → run-tests → teardown`):
`bootstrap` creates the cluster via Commander and hands off its kubeconfig;
`enable-modules` installs `sds-object` from `tests/cluster_config.ci.yml`
(`modulePullOverride: "${E2E_MODULE_IMAGE_TAG}"`, resolved to `pr<N>`);
`run-tests` connects to that cluster from the kubeconfig (no SSH) and runs the
suite. This requires the PR's dev image (`pr<N>`) to be built and pushed to the
dev-registry **before** the e2e run (the `build_dev` workflow), and the Commander
cluster must be able to pull from that registry.
Pipeline flow (`resolve → bootstrap → run-tests → teardown`): `bootstrap`
creates the cluster via Commander **and** enables `sds-object` (+ its
dependencies) from `tests/cluster_config.ci.yml`
(`modulePullOverride: "${E2E_MODULE_IMAGE_TAG}"`, resolved to `pr<N>`),
connecting in-process to the master (SSH via the bastion + API tunnel);
`run-tests` attaches to that cluster the same way (the commander provider's
`Connect`) and runs the suite. This requires the PR's dev image (`pr<N>`) to be
built and pushed to the dev-registry **before** the e2e run (the `build_dev`
workflow), and the Commander cluster must be able to pull from that registry.

## Running locally

Expand Down
35 changes: 19 additions & 16 deletions e2e/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@ go 1.26.0

require (
github.com/deckhouse/sds-object/api v0.0.0-00010101000000-000000000000
github.com/deckhouse/storage-e2e v0.0.0-20260615225534-f681188c4aa9
github.com/onsi/ginkgo/v2 v2.23.3
github.com/onsi/gomega v1.37.0
github.com/deckhouse/storage-e2e v0.0.0-20260702114304-4e82b7fbdf07
github.com/onsi/ginkgo/v2 v2.28.2
github.com/onsi/gomega v1.39.1
k8s.io/api v0.34.2
k8s.io/apimachinery v0.34.2
k8s.io/client-go v0.34.2
)

require (
github.com/Masterminds/semver/v3 v3.3.1 // indirect
github.com/Masterminds/semver/v3 v3.5.0 // indirect
github.com/caarlos0/env/v11 v11.4.1 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/deckhouse/deckhouse v1.74.0 // indirect
github.com/deckhouse/sds-node-configurator/api v0.0.0-20260114125558-7fd7152586ff // indirect
Expand All @@ -30,41 +31,43 @@ require (
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/gnostic-models v0.7.0 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/kr/fs v0.1.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/moby/spdystream v0.5.0 // indirect
github.com/moby/spdystream v0.5.1 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
github.com/openshift/custom-resource-status v1.1.2 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/sftp v1.13.10 // indirect
github.com/spf13/pflag v1.0.7 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/x448/float16 v0.8.4 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/crypto v0.46.0 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sys v0.39.0 // indirect
golang.org/x/term v0.38.0 // indirect
golang.org/x/text v0.32.0 // indirect
golang.org/x/crypto v0.52.0 // indirect
golang.org/x/mod v0.35.0 // indirect
golang.org/x/net v0.54.0 // indirect
golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.45.0 // indirect
golang.org/x/term v0.43.0 // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/time v0.12.0 // indirect
golang.org/x/tools v0.39.0 // indirect
google.golang.org/protobuf v1.36.6 // indirect
golang.org/x/tools v0.44.0 // indirect
google.golang.org/protobuf v1.36.11 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.34.2 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
k8s.io/utils v0.0.0-20260108192941-914a6e750570 // indirect
kubevirt.io/api v1.6.2 // indirect
kubevirt.io/containerized-data-importer-api v1.60.3-0.20241105012228-50fbed985de9 // indirect
kubevirt.io/controller-lifecycle-operator-sdk/api v0.0.0-20220329064328-f3cc58c6ed90 // indirect
Expand Down
Loading
Loading