rbd: use volumeattributesclass feature implement rbd volume qos#6160
rbd: use volumeattributesclass feature implement rbd volume qos#6160YiteGu wants to merge 12 commits intoceph:develfrom
Conversation
b78efe5 to
36c1c2f
Compare
c1e4f0a to
dffa21e
Compare
nixpanic
left a comment
There was a problem hiding this comment.
This is a user visible change. Put a note in PendingReleaseNotes.md for this too. Maybe add a note in the main README.md for support of this as well, update other documentation?
|
This pull request now has conflicts with the target branch. Could you please resolve conflicts and force push the corrected changes? 🙏 |
cb885ba to
a8df95a
Compare
|
This pull request now has conflicts with the target branch. Could you please resolve conflicts and force push the corrected changes? 🙏 |
43fa44e to
1a4ade8
Compare
f7b6685 to
e786b28
Compare
nixpanic
left a comment
There was a problem hiding this comment.
Two minor things that caught the eye of Claude Code, and look like good recommendations to me.
|
/test ci/centos/mini-e2e/k8s-1.34 |
e786b28 to
650a107
Compare
nixpanic
left a comment
There was a problem hiding this comment.
Another round of review (now completed by me, not Claude).
These are the only changes I would like to see, everything else looks good to me. Thanks!
b2d68cb to
a79ce62
Compare
1. add new MODIFY_VOLUME to controller service capability. 2. CreateVolume use mutable_parameters to set volume qos Signed-off-by: Yite Gu <guyite@bytedance.com>
When the PVC's volumeAttributesClassName is modified, the csi-resizer initiates ControllerModifyVolume call. In the first version of ControllerModifyVolume, we implemented QoS functionality for RBD volumes. Signed-off-by: Yite Gu <guyite@bytedance.com>
1. Create a VolumeAttributesClass with a QoS parameter. Create a PVC with a VolumeAttributesClassName parameter. Verify the QoS results of the RBD image. 2. Modify the VolumeAttributesClassName of the PVC and verify the change in the QoS of the RBD image. 3. Create a VolumeAttributesClass that supports capacity-based QoS and verify the QoS results of the RBD image. Create a cloned volume of the PVC and verify the QoS results of the cloned volume. Signed-off-by: Yite Gu <guyite@bytedance.com> Co-authored-by: Niels de Vos <ndevos@ibm.com>
The addition of a new op caused the tryAcquire function to become too complex and fail CI checks. The tryAcquire function implementation was refactored, and the conflictMatrix design was introduced, which greatly reduced the complexity. Signed-off-by: Yite Gu <guyite@bytedance.com>
storageclass is no longer used as the qos parameters carrier for RBD volumes; these parameters are now defined in volumeattribetesclass. Signed-off-by: Yite Gu <guyite@bytedance.com>
Signed-off-by: Yite Gu <guyite@bytedance.com>
Signed-off-by: Yite Gu <guyite@bytedance.com>
Signed-off-by: Yite Gu <guyite@bytedance.com>
Signed-off-by: Yite Gu <guyite@bytedance.com>
Signed-off-by: Yite Gu <guyite@bytedance.com>
Signed-off-by: Yite Gu <guyite@bytedance.com>
Signed-off-by: Yite Gu <guyite@bytedance.com>
bab1bd9 to
ec7ba93
Compare
✅ Branch has been successfully rebased |
|
/test ci/centos/k8s-e2e-external-storage/1.34 |
|
/test ci/centos/upgrade-tests-cephfs |
|
/test ci/centos/mini-e2e-helm/k8s-1.34 |
|
/test ci/centos/upgrade-tests-rbd |
|
/test ci/centos/k8s-e2e-external-storage/1.33 |
|
/test ci/centos/k8s-e2e-external-storage/1.35 |
|
/test ci/centos/mini-e2e/k8s-1.34 |
|
/test ci/centos/mini-e2e-helm/k8s-1.33 |
|
/test ci/centos/mini-e2e-helm/k8s-1.35 |
|
/test ci/centos/mini-e2e/k8s-1.33 |
|
/test ci/centos/mini-e2e/k8s-1.35 |
|
/retest ci/centos/upgrade-tests-rbd |
Hi, @nixpanic Which file was this user's permission added to? |
I think the failure happens because in the upgrade test, the new RBAC is not used, but the RBAC of the old version that is deployed before the upgrade. Just guessing, would need to inspect the e2e code in detail. The logs do show an other issue too: The e2e creates a StorageClass with the new parameters for the credentials, but the old sidecars are used for the old version... I can't immediately think of a nice approach that addresses this in a way it easily keeps working in the future. Will ponder on this for a bit and come back to it. |
Describe what this PR does
volumeAttributesClassNamewhen defining the PVC. For example:volumeAttributesClassNameparameter of an existing PVC.ref: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/
Is there anything that requires special attention
Do you have any questions?
Is the change backward compatible?
Are there concerns around backward compatibility?
Provide any external context for the change, if any.
For example:
Related issues
Mention any github issues relevant to this PR. Adding below line
will help to auto close the issue once the PR is merged.
Fixes: #issue_number
Future concerns
List items that are not part of the PR and do not impact it's
functionality, but are work items that can be taken up subsequently.
Checklist:
guidelines in the developer
guide.
Request
notes
updated with breaking and/or notable changes for the next major release.
Show available bot commands
These commands are normally not required, but in case of issues, leave any of
the following bot commands in an otherwise empty comment in this PR:
/retest ci/centos/<job-name>: retest the<job-name>after unrelatedfailure (please report the failure too!)