Skip to content

nvmeof: add examples and deployment files#5641

Merged
mergify[bot] merged 12 commits into
ceph:develfrom
nixpanic:nvmeof/e2e-pvc-bound
Feb 11, 2026
Merged

nvmeof: add examples and deployment files#5641
mergify[bot] merged 12 commits into
ceph:develfrom
nixpanic:nvmeof/e2e-pvc-bound

Conversation

@nixpanic

@nixpanic nixpanic commented Oct 9, 2025

Copy link
Copy Markdown
Member

Examples and deployment files for NVMe-oF. These are used with the e2e testing
as well.

See-also: #5672

@mergify mergify Bot added the component/nvme-of Issues and PRs related to NVMe-oF. label Oct 9, 2025
@nixpanic

nixpanic commented Oct 9, 2025

Copy link
Copy Markdown
Member Author

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

1 similar comment
@nixpanic

nixpanic commented Oct 9, 2025

Copy link
Copy Markdown
Member Author

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

@nixpanic nixpanic added component/testing Additional test cases or CI work ci/skip/multi-arch-build skip building on multiple architectures labels Oct 9, 2025
@nixpanic

nixpanic commented Oct 9, 2025

Copy link
Copy Markdown
Member Author

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

@nixpanic nixpanic force-pushed the nvmeof/e2e-pvc-bound branch from 4d5676f to 0298e90 Compare October 10, 2025 08:05
@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic

Copy link
Copy Markdown
Member Author

/test ci/centos/mini-e2e/k8s-1.33

@nixpanic nixpanic force-pushed the nvmeof/e2e-pvc-bound branch from 0298e90 to dd3d82d Compare October 10, 2025 08:49
@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic

Copy link
Copy Markdown
Member Author

/test ci/centos/mini-e2e/k8s-1.32

@nixpanic

Copy link
Copy Markdown
Member Author

Deploying the NVMe-oF gateway fails because the ceph nvme-gw create ... command was not found. Maybe this has been added to newer Ceph version, and isn't available in v19.2.2.

Log from the init-container that constructs the configuration and announces the gateway in the Ceph environment:

  + ceph nvme-gw create ceph-nvmeof-gateway-59f798f746-rjv9h nvmeofpool rook-ceph
  no valid command found; 10 closest matches:
  pg stat
  pg getmap
  pg dump [<dumpcontents:all|summary|sum|delta|pools|osds|pgs|pgs_brief>...]
  pg dump_json [<dumpcontents:all|summary|sum|pools|osds|pgs>...]
  pg dump_pools_json
  pg ls-by-pool <poolstr> [<states>...]
  pg ls-by-primary <id|osd.id> [<pool:int>] [<states>...]
  pg ls-by-osd <id|osd.id> [<pool:int>] [<states>...]
  pg ls [<pool:int>] [<states>...]
  pg dump_stuck [<stuckops:inactive|unclean|stale|undersized|degraded>...] [<threshold:int>]
  Error EINVAL: invalid command

@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic

Copy link
Copy Markdown
Member Author

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

2 similar comments
@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic nixpanic force-pushed the nvmeof/e2e-pvc-bound branch from 19de06a to be0d918 Compare October 10, 2025 15:23
@nixpanic

Copy link
Copy Markdown
Member Author

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

1 similar comment
@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic nixpanic force-pushed the nvmeof/e2e-pvc-bound branch from 394858c to 77aacdb Compare October 12, 2025 12:27
@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic nixpanic force-pushed the nvmeof/e2e-pvc-bound branch from 77aacdb to 72e0e02 Compare October 13, 2025 06:57
@nixpanic

Copy link
Copy Markdown
Member Author

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

1 similar comment
@nixpanic

Copy link
Copy Markdown
Member Author

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

@nixpanic nixpanic force-pushed the nvmeof/e2e-pvc-bound branch from 14a2ccf to 7af1a69 Compare October 13, 2025 10:56
@nixpanic

Copy link
Copy Markdown
Member Author

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

@gadididi gadididi left a comment

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.

LGTM!
small nits\questions

Comment on lines +34 to +39
listeners: |
[{
"address": "10.242.64.32",
"port": "4420",
"hostname": "cephnvme-vm9"
}]

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.

maybe we should write under comment the alternative way (AutoListener. and write it will be supported from ceph tentacle?

UPDATE:
Aviv does not want to release the manually option at all, because he does not want users will start use this (uneasy) approach..

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.

Autolisteners are not available yet, right? Needs a newer Ceph version, new gateway and updated Ceph-CSI.

This is what we have now, and it works for Ceph clusters that run their gateways outside of the Kubernetes cluster.

We can update the examples later on, if we know when or what version combination works better.

But hopefully we get a way that deploys/configures the gateway in a stable fashion with Rook. Services and Cluster-IP addresses without specifying IP-addresses in the listerners section would be a clean approach too.

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.

ok sounds good, thanks

Comment on lines +4 to +5
metadata:
name: "ceph-csi-config"

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.

We can add here in metadata entry- the kms type (under comment)
//"encryptionKMSType": "metadata"
(If someone works with dh-chap he must add it)

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.

ideally the PR that adds dh-chap would add the option here. If that feature gets merged before this, we can include it here.

Comment on lines +63 to +64
# FIXME: delete imagePullPolicy, or set to "IfNotPresent"
imagePullPolicy: "Always"

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.

fix here

Comment thread examples/nvmeof/pvc.yaml
@@ -0,0 +1,12 @@
---

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.

maybe we can add another PVC example with
volumeAttributesClassName property, and its value will be default

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.

Not all kubernetes versions we are testing with, support that yet. Creating the PVC with an old Kubernetes version would fail.


# subsystemNQN is the NQN of the subsystem where all volumes belong to
subsystemNQN: "nqn.2025-08.io.ceph:k8s-ceph-csi"

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.

maybe add dh-chap option under comment?

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.

Comment thread e2e/nvmeof-gateway.go

e2eGatewaySecurityContext = e2eGatewayPath + "scc.yaml"
e2eGatewayServiceAccount = e2eGatewayPath + "serviceaccount.yaml"
e2eGatewayConfig = e2eGatewayPath + "config.yaml"

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.

inside the e2e/nvmeof/config.yaml file I think we should add this line:
enable_monitor_client = True in the GW configuration. without monitor client the GW cannot be deployed

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.

Well, it works now, I'd rather change as little as possible at the moment. Hopefully we can use Rook to deploy the gateway soon.

Comment thread e2e/nvmeof-gateway.go
Comment on lines +95 to +102
// After a failure, the deployment is automatically removed. The gateway Pod
// is not available anymore when the e2e job gathers all the logs. Record
// the logs in the job for now (the way of deploying will move to Rook in
// the future anyway).
for _, container := range []string{"generate-minimal-ceph-conf", "nvmeof-gateway"} {
logs, _ := frameworkPod.GetPodLogs(context.TODO(), f.ClientSet, rookNamespace, pod, container)
framework.Logf("Logs from the %q container of the NVMe-oF gateway:\n%s", container, logs)
}

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.

I hope we can drop all the manual deploying of the gateway and rely on Rook soon.

Comment thread e2e/nvmeof-gateway.go
Expect(err).ShouldNot(HaveOccurred())
Expect(pods.Items).Should(HaveLen(1))

return pods.Items[0].Name, pods.Items[0].Status.PodIP

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.

maybe return list of ip port , depending on how many GW you deployed in e2e/nvmeof/deployment.yaml

Comment thread e2e/nvmeof-deploy.go
Port int `json:"port"`
}{
{
Hostname: gwHost, // FIXME: is this required?

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.

remove the comment

Comment thread e2e/nvmeof.go
Comment on lines +136 to +138
validateRBDImageCount(f, 1, nvmeofPool)
validateOmapCount(f, 1, rbdType, nvmeofPool, volumesType)

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.

maybe in the future we can add another pod nvmeog-gw-toolbox and then validate the listener\host\subsystem\namespace were created, what do you think?

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.

Sure, when we add tests that validate the state of the gateway, we should deploy the additional toolbox too.

@Madhu-1 Madhu-1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

@nixpanic is the plan to add all the yamls here and later migrate to the csi-operator once its ready?

metadata:
name: ceph-nvmeof-nodeplugin
rules:
- apiGroups: [""]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Are these RBAC's copy from the RBD driver or nvme needs these permissions as well?

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.

the NVMe implementation calls some RBD functionality. It may not need all permissions at the moment, but new features get added, so the permissions need to be updated at that time too. Instead of trying to remove permissions that get added later, I just kept them.

- mountPath: /csi-logs
name: logs-dir
- args:
- --v=5

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

log level 1 like in deployment?

Comment thread e2e/ceph.go Outdated
return s
}

// parse splilts the version string into sepate pieces.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

splilts to splits sepate to separate

Comment thread e2e/e2e_test.go
flag.BoolVar(&testNBD, "test-nbd", false, "test rbd csi driver with rbd-nbd mounter")
flag.BoolVar(&testNFS, "test-nfs", false, "test nfs csi driver")
flag.BoolVar(&testNVMeoF, "test-nvmeof", false, "test nvmeof csi driver")
flag.BoolVar(&testNVMeoF, "test-nvmeof", true, "test nvmeof csi driver")

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

this should be set to false as we dont deploy-nvme by default?

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.

testing should be done by default. When no support for the nvme-gateway is detected, the tests are skipped. This option makes it possible to explicitly disable the testing, if needed for some reason.

Comment thread e2e/nvmeof-deploy.go Outdated
@@ -0,0 +1,249 @@
/*
Copyright 2025 The Ceph-CSI Authors.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

2026

Comment thread e2e/nvmeof-deploy.go
}
rawListeners, err := json.Marshal(listeners)
Expect(err).ShouldNot(HaveOccurred())
sc.Parameters["listeners"] = string(rawListeners)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

i thought we were going to use auto listeners as the listeners will have problem if the gateway pod restarts, this will leave inconcistent test results

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.

Autolisteners are not available yet. Ideally we do not need to provide IP-addresses when the gateway gets deployed by Rook. But how that will be done, is something we need to figure out.

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.

@Madhu-1
the AutoListener will not resolve the nvme connection issue (from the nodesever side) . it just will make easier life for the administrator . No need to re-edit the SC every time the GW pod restarts with the IPs..

the connection issue is still open without solution. hopefully soon will be resolved

csi.storage.k8s.io/controller-expand-secret-name: csi-nvmeof-secret
csi.storage.k8s.io/controller-expand-secret-namespace: default
csi.storage.k8s.io/node-stage-secret-name: csi-nvmeof-secret
csi.storage.k8s.io/node-stage-secret-namespace: default

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

publish secrets are not required?

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.

No, maybe later when dh-chap is supported.

@@ -0,0 +1,13 @@
---
# apiVersion: storage.k8s.io/v1beta1 for k8s version 1.33

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

IMO one class example is enough with commented parameters, we dont need to add multiple files to show different parameters

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.

I think practical examples are valuable for users. It makes it easier to understand that they should create multiple VolumeAttributesClasses.

Comment thread e2e/nvmeof-deploy.go
sc.Parameters["csi.storage.k8s.io/provisioner-secret-name"] = nvmeofProvisionerSecretName

sc.Parameters["csi.storage.k8s.io/controller-publish-secret-namespace"] = cephCSINamespace
sc.Parameters["csi.storage.k8s.io/controller-publish-secret-name"] = nvmeofProvisionerSecretName

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

expand secrets are missing here?

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.

Not really missing, there is no expand volume test yet. I'll add them to keep everything a little more complete.

Comment thread e2e/nvmeof-gateway.go
Comment on lines +95 to +102
// After a failure, the deployment is automatically removed. The gateway Pod
// is not available anymore when the e2e job gathers all the logs. Record
// the logs in the job for now (the way of deploying will move to Rook in
// the future anyway).
for _, container := range []string{"generate-minimal-ceph-conf", "nvmeof-gateway"} {
logs, _ := frameworkPod.GetPodLogs(context.TODO(), f.ClientSet, rookNamespace, pod, container)
framework.Logf("Logs from the %q container of the NVMe-oF gateway:\n%s", container, logs)
}

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.

I hope we can drop all the manual deploying of the gateway and rely on Rook soon.

@nixpanic

Copy link
Copy Markdown
Member Author

@nixpanic is the plan to add all the yamls here and later migrate to the csi-operator once its ready?

Yes, ceph-csi-operator isn't ready yet, so we have to do this for the time being.

gadididi and others added 12 commits February 10, 2026 11:22
Add example of storage class and pvc, need to modify storage class
before use!

Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: gadi-didi <gadi.didi@ibm.com>
The deployment files make it possible to start the NVMe-oF controller
and nodeplugin by the e2e suite.

Co-authored-by: gadi-didi <gadi.didi@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Create a PVC and wait for it to get Bound. This does not exersice the
node-plugin yet, only the controller/provisioner.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Recent versions of Rook use Ceph-CSI Operator by default. There is no
need to have Ceph-CSI deployed by Rook, as our CI deploys it from the PR
that is being tested.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
ceph-volume in Tentacle (v20) uses udev data to detect some properties
of the potential OSDs. Inside the minikube cluster (running with
Podman), there is no udev. Mounting the host udev runtime data into the
containers makes ceph-volume happy.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: Niels de Vos <ndevos@ibm.com>
Add example of volumeAttributesClass yaml files.
it is possible to use in with PVC, by using the field volumeAttributesClassName.

Co-authored-by: Niels de Vos <ndevos@ibm.com>
Signed-off-by: gadi-didi <gadi.didi@ibm.com>
Ceph Tentacle is required for deploying the NVMe-oF gateway. Earlier
versions do not support the gateway.

Signed-off-by: Niels de Vos <ndevos@ibm.com>
@nixpanic nixpanic force-pushed the nvmeof/e2e-pvc-bound branch from e0bb01c to 17d5ccc Compare February 10, 2026 10:22
@nixpanic nixpanic requested review from Madhu-1 and gadididi February 10, 2026 10:22
@nixpanic

Copy link
Copy Markdown
Member Author

@gadididi and @Madhu-1 , thanks for the review and comments. Please have a look again, I hope I explained everything and made the required adjustments.

@gadididi gadididi left a comment

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.

looks good!
thanks :)

@Madhu-1

Madhu-1 commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator

@Merigfyio queue

@nixpanic

Copy link
Copy Markdown
Member Author

@Mergifyio queue

@mergify

mergify Bot commented Feb 11, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

Rule: default


This pull request spent 2 hours 44 minutes 44 seconds in the queue, including 2 hours 44 minutes 29 seconds running CI.

Required conditions to merge
  • #approved-reviews-by >= 2 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • any of:
    • all of:
      • base=devel
      • status-success=codespell
      • status-success=go-test
      • status-success=golangci-lint
      • status-success=lint-extras
      • status-success=mod-check
      • status-success=multi-arch-build
      • status-success=uncommitted-code-check
      • any of:
        • all of:
          • status-success=ci/centos/k8s-e2e-external-storage/1.33
          • status-success=ci/centos/k8s-e2e-external-storage/1.34
          • status-success=ci/centos/k8s-e2e-external-storage/1.35
          • status-success=ci/centos/mini-e2e-helm/k8s-1.33
          • status-success=ci/centos/mini-e2e-helm/k8s-1.34
          • status-success=ci/centos/mini-e2e-helm/k8s-1.35
          • status-success=ci/centos/mini-e2e/k8s-1.33
          • status-success=ci/centos/mini-e2e/k8s-1.34
          • status-success=ci/centos/mini-e2e/k8s-1.35
          • status-success=ci/centos/upgrade-tests-cephfs
          • status-success=ci/centos/upgrade-tests-rbd
        • label=ci/skip/e2e
    • all of:
      • base~=^(release-.+)$
      • any of:
        • label=ci/skip/e2e
        • all of:
          • status-success=ci/centos/k8s-e2e-external-storage/1.32
          • status-success=ci/centos/mini-e2e-helm/k8s-1.32
          • status-success=ci/centos/mini-e2e/k8s-1.32
          • status-success=ci/centos/k8s-e2e-external-storage/1.33
          • status-success=ci/centos/k8s-e2e-external-storage/1.34
          • status-success=ci/centos/mini-e2e-helm/k8s-1.33
          • status-success=ci/centos/mini-e2e-helm/k8s-1.34
          • status-success=ci/centos/mini-e2e/k8s-1.33
          • status-success=ci/centos/mini-e2e/k8s-1.34
          • status-success=ci/centos/upgrade-tests-cephfs
          • status-success=ci/centos/upgrade-tests-rbd
      • status-success=codespell
      • status-success=go-test
      • status-success=golangci-lint
      • status-success=lint-extras
      • status-success=mod-check
      • status-success=multi-arch-build
      • status-success=uncommitted-code-check
    • all of:
      • base=release-v3.15
      • any of:
        • label=ci/skip/e2e
        • all of:
          • status-success=ci/centos/k8s-e2e-external-storage/1.31
          • status-success=ci/centos/k8s-e2e-external-storage/1.32
          • status-success=ci/centos/mini-e2e-helm/k8s-1.31
          • status-success=ci/centos/mini-e2e-helm/k8s-1.32
          • status-success=ci/centos/mini-e2e/k8s-1.31
          • status-success=ci/centos/mini-e2e/k8s-1.32
          • status-success=ci/centos/k8s-e2e-external-storage/1.33
          • status-success=ci/centos/mini-e2e-helm/k8s-1.33
          • status-success=ci/centos/mini-e2e/k8s-1.33
          • status-success=ci/centos/upgrade-tests-cephfs
          • status-success=ci/centos/upgrade-tests-rbd
      • status-success=codespell
      • status-success=go-test
      • status-success=golangci-lint
      • status-success=lint-extras
      • status-success=mod-check
      • status-success=multi-arch-build
      • status-success=uncommitted-code-check
    • all of:
      • base=ci/centos
      • status-success=ci/centos/jjb-validate
      • status-success=ci/centos/job-validation

@mergify mergify Bot added the queued label Feb 11, 2026
mergify Bot added a commit that referenced this pull request Feb 11, 2026
@mergify mergify Bot merged commit 8c16324 into ceph:devel Feb 11, 2026
17 checks passed
@mergify mergify Bot removed the queued label Feb 11, 2026
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 keepalive This label can be used to disable stale bot activiity in the repo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants