diff options
| author | Viktor Kuzmin <kvaster@gmail.com> | 2024-03-29 20:22:21 +0200 |
|---|---|---|
| committer | Chris Lu <chrislusf@users.noreply.github.com> | 2024-03-29 11:43:05 -0700 |
| commit | f65774057adde179719ff2ffd2c9aa10ef35ad1c (patch) | |
| tree | 1e51e43d2fd64397ba5f3dfab5515d365aa024af | |
| parent | ea12719c0c7587e8fa5a75e9b3e9c81723ac0f50 (diff) | |
| download | seaweedfs-csi-driver-f65774057adde179719ff2ffd2c9aa10ef35ad1c.tar.xz seaweedfs-csi-driver-f65774057adde179719ff2ffd2c9aa10ef35ad1c.zip | |
Use capacity of one byte as 'no quota'
| -rw-r--r-- | pkg/driver/nodeserver.go | 5 | ||||
| -rw-r--r-- | pkg/driver/volume.go | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/pkg/driver/nodeserver.go b/pkg/driver/nodeserver.go index 616c79b..2b0463c 100644 --- a/pkg/driver/nodeserver.go +++ b/pkg/driver/nodeserver.go @@ -80,7 +80,10 @@ func (ns *NodeServer) NodeStageVolume(ctx context.Context, req *csi.NodeStageVol } return nil, status.Error(codes.Internal, err.Error()) } - //k8s api get Capacity + + // In seaweedfs quota is not configured on seaweedfs servers. + // Quota is applied only per mount. + // Previously we used to cmdline parameter to apply it, but such way does not allow dynamic resizing. if capacity, err := k8s.GetVolumeCapacity(volumeID); err == nil { if err := volume.Quota(capacity); err != nil { return nil, err diff --git a/pkg/driver/volume.go b/pkg/driver/volume.go index ac0a80a..ab0dcd4 100644 --- a/pkg/driver/volume.go +++ b/pkg/driver/volume.go @@ -90,6 +90,11 @@ func (vol *Volume) Quota(sizeByte int64) error { } defer clientConn.Close() + // We can't create PV of zero size, so we're using quota of 1 byte to define no quota. + if sizeByte == 1 { + sizeByte = 0 + } + client := mount_pb.NewSeaweedMountClient(clientConn) _, err = client.Configure(context.Background(), &mount_pb.ConfigureRequest{ CollectionCapacity: sizeByte, |
