kubernetes / kubernetes/cloud-provider-openstack
[manila-csi-plugin] Support mutable NFS access rules
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 720
- Forks
- 687
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 51
Description
/kind feature
What happened:
The nfs-shareClient storage class parameter is only evaluated while dynamically provisioning a Manila NFS share. After the PVC is created, Kubernetes users cannot change the share client IP addresses or CIDRs through the Manila CSI driver. Updating the access list requires operating Manila directly, which moves the share configuration outside the Kubernetes workflow.
What you expected to happen:
The Manila CSI plugin should implement the CSI ControllerModifyVolume RPC and advertise the MODIFY_VOLUME capability for NFS. When a PVC is assigned a new VolumeAttributesClass containing nfs-shareClient, the driver should reconcile the Manila share's rw IP access rules with the requested list.
The operation should be idempotent and should grant new rules before revoking obsolete rules to avoid an access gap. Read-only rules and non-IP access rules should remain unchanged. Mutable parameters should also be honored during initial volume creation, as required by the CSI specification.
Example:
apiVersion: storage.k8s.io/v1
kind: VolumeAttributesClass
metadata:
name: manila-nfs-private
driverName: nfs.manila.csi.openstack.org
parameters:
nfs-shareClient: 10.0.0.0/24,192.0.2.10
How to reproduce it:
- Provision an NFS PVC using a storage class with
nfs-shareClient. - Create a
VolumeAttributesClasswith a differentnfs-shareClientvalue. - Assign the class to the PVC.
- Observe that the current driver does not advertise
MODIFY_VOLUMEand returnsUnimplementedfromControllerModifyVolume, so the Manila access rules are not updated.
Anything else we need to know?:
This requires Kubernetes support for VolumeAttributesClass and a compatible external-resizer. The intended reconciliation manages rw rules with access type ip; other Manila access rules are preserved.
Environment:
- manila-csi-plugin version: current master
- OpenStack version: any version supported by the current Manila CSI plugin
- Others: Kubernetes 1.34 or newer
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the CSI ControllerModifyVolume contract, the current Unimplemented path, and the NFS handling of nfs-shareClient. Trace how VolumeAttributesClass reaches the driver and how Manila access rules are represented. Done means MODIFY_VOLUME is advertised for NFS, mutable parameters work at creation and update, and reconciliation preserves read-only and non-IP rules while remaining idempotent.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- backend-api-design, cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100