Skip to content

e2e: add nvmeof driver testing support with k8s-e2e-external-storage#6214

Open
nixpanic wants to merge 5 commits intoceph:develfrom
nixpanic:nvmeof/e2e-external-storage
Open

e2e: add nvmeof driver testing support with k8s-e2e-external-storage#6214
nixpanic wants to merge 5 commits intoceph:develfrom
nixpanic:nvmeof/e2e-external-storage

Conversation

@nixpanic
Copy link
Copy Markdown
Member

@nixpanic nixpanic commented Mar 31, 2026

Add configuration files and scripts to enable NVMeoF driver testing in the
k8s-e2e-external-storage CI job. This includes the driver manifest,
StorageClass template, and VolumeSnapshotClass template for NVMeoF.

Also deploy the NVMe-oF gateway with Rook.

Depends-on: #5672 for NVMe-oF gateway support

@nixpanic nixpanic added the ci/skip/multi-arch-build skip building on multiple architectures label Mar 31, 2026
@mergify mergify Bot added component/nvme-of Issues and PRs related to NVMe-oF. component/testing Additional test cases or CI work labels Mar 31, 2026
@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.35

Job is still running after addressing the MarkDown linter failures.

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 44d2d02 to 7f22c0f Compare March 31, 2026 11:36
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 8, 2026

@Mergifyio rebase

@ceph-csi-bot ceph-csi-bot force-pushed the nvmeof/e2e-external-storage branch from 7f22c0f to 0a51e55 Compare April 8, 2026 16:41
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 8, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented Apr 8, 2026

Deprecation notice: This pull request comes from a fork and was rebased using bot_account impersonation. This capability will be removed on July 1, 2026. After this date, the rebase action will no longer be able to rebase fork pull requests with this configuration. Please switch to the update action/command to ensure compatibility going forward.

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented Apr 8, 2026

rebase

✅ Branch has been successfully rebased

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 0a51e55 to 9d2cfcf Compare April 9, 2026 08:04
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

1 similar comment
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 691d9e4 to ca6dc6e Compare April 9, 2026 08:50
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from ca6dc6e to 9e6d963 Compare April 9, 2026 09:07
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 9e6d963 to 5a2e14b Compare April 9, 2026 09:24
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

job is running need to inspect the result of the nvmeof driver once done.

/cc @gadididi

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 5a2e14b to 783a7fd Compare April 9, 2026 13:03
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

1 similar comment
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 8cc3df5 to 47c3972 Compare April 9, 2026 14:59
@nixpanic
Copy link
Copy Markdown
Member Author

nixpanic commented Apr 9, 2026

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 47c3972 to 51d1351 Compare April 10, 2026 06:45
@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 51d1351 to f182e4c Compare April 10, 2026 08:51
@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.35

@nixpanic
Copy link
Copy Markdown
Member Author

Disable pvcDataSource (cloning) testing, these do not pass:

Summarizing 3 Failures:
  [FAIL] External Storage [Driver: nvmeof.csi.ceph.com] [Testpattern: Dynamic PV (default fs)] provisioning [It] should provision storage with pvc data source in parallel [Slow] [Slow]
  k8s.io/kubernetes/test/e2e/framework/volume/fixtures.go:574
  [FAIL] External Storage [Driver: nvmeof.csi.ceph.com] [Testpattern: Dynamic PV (block volmode)] provisioning [It] should provision storage with pvc data source in parallel [Slow] [Slow]
  k8s.io/kubernetes/test/e2e/framework/volume/fixtures.go:574
  [TIMEDOUT] External Storage [Driver: nvmeof.csi.ceph.com] [Testpattern: Dynamic PV (block volmode)] provisioning [It] should provision storage with pvc data source
  k8s.io/kubernetes/test/e2e/storage/testsuites/provisioning.go:563

logs

nixpanic added a commit to nixpanic/ceph-csi that referenced this pull request Apr 14, 2026
1 hour is too little with the added nvme-of testing.

See-also: ceph#6214
Signed-off-by: Niels de Vos <ndevos@ibm.com>
@nixpanic nixpanic marked this pull request as ready for review April 14, 2026 11:15
@nixpanic nixpanic requested review from a team and gadididi April 14, 2026 11:15
@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.34

@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.33

@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/mini-e2e/k8s-1.35/nvmeof

@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/mini-e2e/k8s-1.35/nvmeof

logs

This one is important to check, the nvme-of gw gets deployed by the e2e suite, and now also by scripts/rook.sh.

@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/mini-e2e/k8s-1.35/nvmeof

logs

This one is important to check, the nvme-of gw gets deployed by the e2e suite, and now also by scripts/rook.sh.

Looks good 🥳

SUCCESS! -- 5 Passed | 0 Failed | 0 Pending | 0 Skipped

Comment thread scripts/k8s-storage/README.md Outdated

```bash
export GATEWAY_ADDRESS=10.242.64.32
export LISTENERS='[{"address": "10.242.64.32"}]'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to add mandatory hostname?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indeed, the readme is not in-sync anymore

driver: nvmeof.csi.ceph.com
parameters:
clusterID: @@CLUSTER_ID@@
csi.storage.k8s.io/snapshotter-secret-name: rook-csi-nvmeof-provisioner
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to use rook-csi-rbd-provisioner ?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, probably. Maybe this caused the volume-clone failure 🤔


cat <<EOF >"${TEMP_DIR}/operatorconfig.yaml"
apiVersion: csi.ceph.io/v1alpha1
apiVersion: csi.ceph.io/v1
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit can be dropped now?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that will happen automatically when this PR is rebased

clusterID: @@CLUSTER_ID@@
pool: replicapool
imageFeatures: layering
# FIXME: use nvmeof specific secrets, but they don't exist yet?
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think there is right now nvmeof secrets. As far as I know it uses rbd secrets
(maybe we should reconsider in the future to use dedicated secrets)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it would be good to use nvmeof secrets in the future. The e2e/nvmeof-deploy.go does it for our e2e suite. Probably we rely on Rook to create the secrets for the k8s-e2e-external-storage tests.

Add configuration files and scripts to enable NVMeoF driver testing in
the k8s-e2e-external-storage CI job. This includes the driver manifest,
StorageClass template, and VolumeSnapshotClass template for NVMeoF.

The create-storageclasses.sh script now auto-detects the NVMeoF gateway
address from the rook-ceph-nvmeof service, or it can be configured via
the GATEWAY_ADDRESS and LISTENERS environment variables.

Assisted-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Deploy the NVMe-oF CSI driver alongside RBD, CephFS, and NFS drivers
when using the ceph-csi-operator deployment script.

Assisted-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
POD_ADDRESS is needed as the nvmeof-gw is deployed in rook-ceph, and ceph-csi
in a dedicated testing namespace. Resolving the short-hostname of the gateway
is not possible from outside the rook-ceph namespace. The gateway is
configured with a host-id as the short-hostname, which needs to match what is
passed in the LISTENERS.

Assisted-by: Claude Code <noreply@anthropic.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
@nixpanic nixpanic force-pushed the nvmeof/e2e-external-storage branch from 8b5087e to 095dc98 Compare April 15, 2026 06:59
@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/k8s-e2e-external-storage/1.35

Comment on lines +68 to +69
# Support ReadWriteMany access modes (block mode only)
RWX: false
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

true ?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this test uses filesystem volumes (works on CephFS), we can not restrict the tests to block-mode only

@nixpanic nixpanic requested a review from Rakshith-R April 15, 2026 13:13
@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/mini-e2e-helm/k8s-1.34/rbd

@nixpanic
Copy link
Copy Markdown
Member Author

/test ci/centos/mini-e2e-helm/k8s-1.34/rbd

Running RBD (with VaultKMS) test for #6236 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/skip/multi-arch-build skip building on multiple architectures component/nvme-of Issues and PRs related to NVMe-oF. component/testing Additional test cases or CI work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants