diff options
| author | 泽淼 周 <zhouzemiao@ihuman.com> | 2025-09-27 18:28:34 +0800 |
|---|---|---|
| committer | Chris Lu <chrislusf@users.noreply.github.com> | 2025-12-06 18:53:22 -0800 |
| commit | da9e11f28bab3c90107c3a730ddbfb57d18475ca (patch) | |
| tree | 10b98b83c5b551bf7cccf71edb4b41c6fb40228d /pkg/driver/volume.go | |
| parent | 1a36b03ed79a12e9b9db5954167ce825222f3d83 (diff) | |
| download | seaweedfs-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.go | 27 |
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 |
