diff options
| author | 泽淼 周 <zhouzemiao@ihuman.com> | 2025-09-26 19:54:44 +0800 |
|---|---|---|
| committer | chrislusf <chris.lu@gmail.com> | 2025-12-05 17:51:28 -0800 |
| commit | bedb15e3e3742a4bd4e26e71e6d9818e9e1474bd (patch) | |
| tree | 7a60daa0bc9cf86204ddeddc94bc7dc748483cb5 /pkg/driver/volume.go | |
| parent | fd2b35494095ccf7b06fb210305406f83ed17998 (diff) | |
| download | seaweedfs-csi-driver-bedb15e3e3742a4bd4e26e71e6d9818e9e1474bd.tar.xz seaweedfs-csi-driver-bedb15e3e3742a4bd4e26e71e6d9818e9e1474bd.zip | |
feat: Separated weed mount lifecycle into a dedicated service and rewired the CSI components to call it.
Diffstat (limited to 'pkg/driver/volume.go')
| -rw-r--r-- | pkg/driver/volume.go | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/pkg/driver/volume.go b/pkg/driver/volume.go index 6cc777b..080595e 100644 --- a/pkg/driver/volume.go +++ b/pkg/driver/volume.go @@ -1,14 +1,10 @@ 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" ) @@ -18,16 +14,14 @@ type Volume struct { mounter Mounter unmounter Unmounter - - // unix socket used to manage volume - localSocket string + driver *SeaweedFsDriver } -func NewVolume(volumeID string, mounter Mounter) *Volume { +func NewVolume(volumeID string, mounter Mounter, driver *SeaweedFsDriver) *Volume { return &Volume{ - VolumeId: volumeID, - mounter: mounter, - localSocket: GetLocalSocket(volumeID), + VolumeId: volumeID, + mounter: mounter, + driver: driver, } } @@ -81,22 +75,18 @@ func (vol *Volume) Publish(stagingTargetPath string, targetPath string, readOnly } func (vol *Volume) Quota(sizeByte int64) error { - target := fmt.Sprintf("passthrough:///unix://%s", vol.localSocket) - dialOption := grpc.WithTransportCredentials(insecure.NewCredentials()) - - clientConn, err := grpc.Dial(target, dialOption) + client, err := mountmanager.NewClient(vol.driver.mountEndpoint) 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 } - client := mount_pb.NewSeaweedMountClient(clientConn) - _, err = client.Configure(context.Background(), &mount_pb.ConfigureRequest{ + _, err = client.Configure(&mountmanager.ConfigureRequest{ + VolumeID: vol.VolumeId, CollectionCapacity: sizeByte, }) return err |
