Skip to content

deploy: use single worker thread in csi-provisioner for NVMe-oF - #6538

Merged
nixpanic merged 1 commit into
ceph:develfrom
nixpanic:nvmeof/single-worker-thread
Sep 10, 2026
Merged

deploy: use single worker thread in csi-provisioner for NVMe-oF#6538
nixpanic merged 1 commit into
ceph:develfrom
nixpanic:nvmeof/single-worker-thread

Conversation

@nixpanic

@nixpanic nixpanic commented Sep 4, 2026

Copy link
Copy Markdown
Member

The NVMe-oF gateway does not handle configuration requests like volume
creation in parallel. This causes multi volume creation to receive
failures, and Kubernetes retries with some backoff delays.

Instead of the failures returned by the CSI-driver, it is more efficient
to allow only a single CreateVolume at the time. This can be configured
by passing --worker-threads=1 to the external-provisioner.

With a single worker thread, volume creation is very stable, and
performance improves a lot. Because of the serialization, multi-volume
creation does take a while, but this is a limitation of the NVMe-oF
gateway.

See-also: ceph/ceph-csi-operator#600


CI job ordering

Depends-on: #6536

@nixpanic
nixpanic requested review from a team as code owners September 4, 2026 08:06
@nixpanic
nixpanic requested review from gadididi and a lite review from Copilot September 4, 2026 08:06
@nixpanic nixpanic added the ci/skip/multi-arch-build skip building on multiple architectures label Sep 4, 2026
@mergify mergify Bot added the component/nvme-of Issues and PRs related to NVMe-oF. label Sep 4, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The change is a minimal, targeted manifest flag adjustment with no apparent side effects outside NVMe-oF provisioning concurrency.

Pull request overview

Updates the NVMe-oF Kubernetes deployment to serialize provisioning operations by limiting the external-provisioner to a single worker thread, aligning with the NVMe-oF gateway’s inability to process configuration/provisioning requests in parallel.

Changes:

  • Configure csi-provisioner with --worker-threads=1 in the NVMe-oF provisioner manifest.
File summaries
File Description
deploy/nvmeof/kubernetes/csi-nvmeofplugin-provisioner.yaml Sets csi-provisioner worker concurrency to 1 to avoid parallel CreateVolume requests for NVMe-oF.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@mergify

mergify Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🟢 All 2 merge protections satisfied — ready to merge.

Show 2 satisfied protections

🟢 ⛓️ Depends-On Requirements

Requirement based on the presence of Depends-On in the body of the pull request

🟢 🚦 Auto-queue

When all merge protections are satisfied, this pull request will be queued automatically.

@nixpanic

nixpanic commented Sep 8, 2026

Copy link
Copy Markdown
Member Author

Wait for #6536 to be merged.

@nixpanic nixpanic mentioned this pull request Sep 9, 2026
6 tasks
@nixpanic

Copy link
Copy Markdown
Member Author

/queue

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

@Mergifyio rebase

@mergify

mergify Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

rebase

🛑 The pull request rule doesn't match anymore

Details

This action has been cancelled.

The NVMe-oF gateway does not handle configuration requests like volume
creation in parallel. This causes multi volume creation to receive
failures, and Kubernetes retries with some backoff delays.

Instead of the failures returned by the CSI-driver, it is more efficient
to allow only a single CreateVolume at the time. This can be configured
by passing --worker-threads=1 to the external-provisioner.

With a single worker thread, volume creation is very stable, and
performance improves a lot. Because of the serialization, multi-volume
creation does take a while, but this is a limitation of the NVMe-oF
gateway.

See-also: ceph/ceph-csi-operator#600
Signed-off-by: Niels de Vos <ndevos@ibm.com>
@ceph-csi-bot
ceph-csi-bot force-pushed the nvmeof/single-worker-thread branch from ce4266c to 5831f90 Compare September 10, 2026 07:36
@ceph-csi-bot ceph-csi-bot added ok-to-test Label to trigger E2E tests and removed queued/rebase labels Sep 10, 2026
@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

/test ci/centos/upgrade-tests-cephfs

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

/test ci/centos/upgrade-tests-rbd

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

/test ci/centos/mini-e2e-helm/k8s-1.36

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot

Copy link
Copy Markdown
Collaborator

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

@ceph-csi-bot ceph-csi-bot added ci/in-progress/e2e This label acts like a guard and prevents Mergify from adding the `ok-to-test` label again. and removed ok-to-test Label to trigger E2E tests labels Sep 10, 2026
@mergify mergify Bot removed the ci/in-progress/e2e This label acts like a guard and prevents Mergify from adding the `ok-to-test` label again. label Sep 10, 2026
@nixpanic nixpanic mentioned this pull request Sep 10, 2026
6 tasks
@mergify

mergify Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@mergify

mergify Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

queue

🛑 This pull request comes from a fork and cannot be rebased on behalf of a user

Details

GitHub refuses an OAuth token on its rebase API for a fork, so rebasing a fork's pull request on behalf of a GitHub user means impersonating that user to force-push the contributor's branch. Mergify does not do that.

Unset update_bot_account on the default queue to keep queueing pull requests from forks: with no account to impersonate, the update rebases through GitHub's API as Mergify, which the installation token is allowed to do. A fork pull request that changes GitHub Actions workflows, or that another GitHub App's bot opened, is the exception: GitHub lets Mergify queue one in place only with an update_bot_account, so a queue that receives those has to run its checks on a draft pull request instead. update_method: merge works too, and merges the base branch into the pull request rather than rebasing it.

@nixpanic
nixpanic merged commit 6d8553e into ceph:devel Sep 10, 2026
44 checks passed
@nixpanic
nixpanic deleted the nvmeof/single-worker-thread branch September 10, 2026 11:18
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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants