ceph-csi icon indicating copy to clipboard operation
ceph-csi copied to clipboard

Use MutableParameters for NBD QOS in CreateVolume

Open Madhu-1 opened this issue 1 month ago • 7 comments

These should be MutableParameters not the parameters during the CreateVolume isnt it?

Originally posted by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/5714#discussion_r2509520899

Madhu-1 avatar Nov 12 '25 07:11 Madhu-1

@YiteGu PTAL if you have sometime or else we can add label so that others can pick it up

Madhu-1 avatar Nov 12 '25 07:11 Madhu-1

@YiteGu PTAL if you have sometime or else we can add label so that others can pick it up

Do you mean we should place the qos parameters at label or annotations in the storageclass so that we can adjust the qos parameters?

YiteGu avatar Nov 12 '25 08:11 YiteGu

@YiteGu PTAL if you have sometime or else we can add label so that others can pick it up

Do you mean we should place the qos parameters at label or annotations in the storageclass so that we can adjust the qos parameters?

It should move to the VolumeAtributeClass from SC, as SC fields are meant to the immutable and cannot be changed.

Madhu-1 avatar Nov 12 '25 08:11 Madhu-1

@YiteGu PTAL if you have sometime or else we can add label so that others can pick it up

Do you mean we should place the qos parameters at label or annotations in the storageclass so that we can adjust the qos parameters?

It should move to the VolumeAtributeClass from SC, as SC fields are meant to the immutable and cannot be changed.

  1. The VolumeAttributeClass feature is GA in Kubernetes 1.34. This version is too new, and users of older versions cannot use it immediately. Should we consider this problem?

  2. Another problem is we need to redevelop rbd qos based on VolumeAttributeClass now?

YiteGu avatar Nov 12 '25 08:11 YiteGu

@YiteGu PTAL if you have sometime or else we can add label so that others can pick it up

Do you mean we should place the qos parameters at label or annotations in the storageclass so that we can adjust the qos parameters?

It should move to the VolumeAtributeClass from SC, as SC fields are meant to the immutable and cannot be changed.

  1. The VolumeAttributeClass feature is GA in Kubernetes 1.34. This version is too new, and users of older versions cannot use it immediately. Should we consider this problem?

NBD is a still in Alpha state only never moved to Beta/GA https://github.com/ceph/ceph-csi/blob/devel/docs/design/proposals/rbd-nbd.md#status with that if anyone wants to move to next cephCSI release to use QOS we can ask them to move to VAC as well.

  1. Another problem is we need to redevelop rbd qos based on VolumeAttributeClass now?

I think we just need to change from parameters to mutable_parameters and implement the ModifyVolume for it.

Madhu-1 avatar Nov 12 '25 09:11 Madhu-1

Note that ControllerModifyVolume with current Kubernetes CSI sidecars does not receive credentials yet. Changes are proposed to the sidecars here:

  • https://github.com/kubernetes-csi/external-provisioner/pull/1440
  • https://github.com/kubernetes-csi/external-resizer/pull/544

A StorageClass can use csi.storage.k8s.io/controller-modify-secret-name and csi.storage.k8s.io/controller-modify-secret-namespace to reference the credentials that should be used to modify a volume according to the parameters of a VolumeAttributeClass.

Existing PVs can be annotated so that the external-resizer can find the right secrets:

  • volume.kubernetes.io/controller-modify-secret-name
  • volume.kubernetes.io/controller-modify-secret-namespace

nixpanic avatar Nov 14 '25 10:11 nixpanic

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in a week if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Dec 14 '25 21:12 github-actions[bot]

This issue has been automatically closed due to inactivity. Please re-open if this still requires investigation.

github-actions[bot] avatar Dec 22 '25 21:12 github-actions[bot]