aboutsummaryrefslogtreecommitdiff
path: root/pkg/driver/volume.go
diff options
context:
space:
mode:
author泽淼 周 <zhouzemiao@ihuman.com>2025-09-27 18:28:34 +0800
committerChris Lu <chrislusf@users.noreply.github.com>2025-12-06 18:53:22 -0800
commitda9e11f28bab3c90107c3a730ddbfb57d18475ca (patch)
tree10b98b83c5b551bf7cccf71edb4b41c6fb40228d /pkg/driver/volume.go
parent1a36b03ed79a12e9b9db5954167ce825222f3d83 (diff)
downloadseaweedfs-csi-driver-da9e11f28bab3c90107c3a730ddbfb57d18475ca.tar.xz
seaweedfs-csi-driver-da9e11f28bab3c90107c3a730ddbfb57d18475ca.zip
Optimization: Reduce unnecessary logic of seaweedfs-mount
Diffstat (limited to 'pkg/driver/volume.go')
-rw-r--r--pkg/driver/volume.go27
1 files changed, 20 insertions, 7 deletions
diff --git a/pkg/driver/volume.go b/pkg/driver/volume.go
index 080595e..9e258a8 100644
--- a/pkg/driver/volume.go
+++ b/pkg/driver/volume.go
@@ -1,10 +1,15 @@
package driver
import (
+ "context"
+ "fmt"
"os"
"github.com/seaweedfs/seaweedfs-csi-driver/pkg/mountmanager"
"github.com/seaweedfs/seaweedfs/weed/glog"
+ "github.com/seaweedfs/seaweedfs/weed/pb/mount_pb"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/credentials/insecure"
"k8s.io/mount-utils"
)
@@ -14,14 +19,18 @@ type Volume struct {
mounter Mounter
unmounter Unmounter
- driver *SeaweedFsDriver
+
+ // unix socket used to manage volume
+ localSocket string
+ driver *SeaweedFsDriver
}
func NewVolume(volumeID string, mounter Mounter, driver *SeaweedFsDriver) *Volume {
return &Volume{
- VolumeId: volumeID,
- mounter: mounter,
- driver: driver,
+ VolumeId: volumeID,
+ mounter: mounter,
+ localSocket: mountmanager.LocalSocketPath(volumeID),
+ driver: driver,
}
}
@@ -75,18 +84,22 @@ func (vol *Volume) Publish(stagingTargetPath string, targetPath string, readOnly
}
func (vol *Volume) Quota(sizeByte int64) error {
- client, err := mountmanager.NewClient(vol.driver.mountEndpoint)
+ target := fmt.Sprintf("passthrough:///unix://%s", vol.localSocket)
+ dialOption := grpc.WithTransportCredentials(insecure.NewCredentials())
+
+ clientConn, err := grpc.Dial(target, dialOption)
if err != nil {
return err
}
+ 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
}
- _, err = client.Configure(&mountmanager.ConfigureRequest{
- VolumeID: vol.VolumeId,
+ client := mount_pb.NewSeaweedMountClient(clientConn)
+ _, err = client.Configure(context.Background(), &mount_pb.ConfigureRequest{
CollectionCapacity: sizeByte,
})
return err