Skip to content

Commit 66ef1ce

Browse files
committed
fix: Add explicit support MULTI_READER_ONLY
1 parent 2b56faf commit 66ef1ce

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

pkg/rclone/driver.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ func Run(ctx context.Context, config *DriverConfig, setup DriverSetup, serve Dri
4444
driver := csicommon.NewCSIDriver(driverName, DriverVersion, config.NodeID)
4545
driver.AddVolumeCapabilityAccessModes([]csi.VolumeCapability_AccessMode_Mode{
4646
csi.VolumeCapability_AccessMode_SINGLE_NODE_SINGLE_WRITER,
47+
csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY,
48+
csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY,
4749
})
4850
driver.AddControllerServiceCapabilities(
4951
[]csi.ControllerServiceCapability_RPC_Type{

pkg/rclone/nodeserver.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,13 +248,22 @@ func validateNodeStageVolumeRequest(req *csi.NodeStageVolumeRequest) error {
248248
return nil
249249
case csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY:
250250
return nil
251+
case csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY:
252+
return nil
251253
default:
252254
return status.Errorf(codes.FailedPrecondition, "Volume access mode not supported %v", capability.GetAccessMode().GetMode())
253255
}
254256
}
255257

256258
func isNodeStageReqReadOnly(req *csi.NodeStageVolumeRequest) bool {
257-
return req.GetVolumeCapability().GetAccessMode().GetMode() == csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY
259+
switch req.GetVolumeCapability().GetAccessMode().GetMode() {
260+
case csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY:
261+
return true
262+
case csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY:
263+
return true
264+
default:
265+
return false
266+
}
258267
}
259268

260269
func getVolumeConfig(ctx context.Context, req *csi.NodeStageVolumeRequest) (*MountedVolume, error) {
@@ -405,6 +414,8 @@ func validateNodePublishVolumeRequest(req *csi.NodePublishVolumeRequest) error {
405414
return nil
406415
case csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY:
407416
return nil
417+
case csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY:
418+
return nil
408419
default:
409420
return status.Errorf(codes.FailedPrecondition, "Volume access mode not supported %v", capability.GetAccessMode().GetMode())
410421
}

0 commit comments

Comments
 (0)