aboutsummaryrefslogtreecommitdiff
path: root/pkg/driver/driver.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/driver/driver.go')
-rw-r--r--pkg/driver/driver.go33
1 files changed, 23 insertions, 10 deletions
diff --git a/pkg/driver/driver.go b/pkg/driver/driver.go
index d162369..6bdcc3b 100644
--- a/pkg/driver/driver.go
+++ b/pkg/driver/driver.go
@@ -4,10 +4,12 @@ import (
"fmt"
"os"
"os/signal"
+ "path/filepath"
"syscall"
"github.com/container-storage-interface/spec/lib/go/csi"
"github.com/seaweedfs/seaweedfs-csi-driver/pkg/datalocality"
+ "github.com/seaweedfs/seaweedfs-csi-driver/pkg/mountmanager"
"github.com/seaweedfs/seaweedfs/weed/glog"
"github.com/seaweedfs/seaweedfs/weed/pb"
"github.com/seaweedfs/seaweedfs/weed/pb/filer_pb"
@@ -27,8 +29,9 @@ type SeaweedFsDriver struct {
nodeID string
version string
- endpoint string
- mountEndpoint string
+ endpoint string
+ mountEndpoint string
+ volumeSocketDir string // directory for volume sockets, derived from mountEndpoint
vcap []*csi.VolumeCapability_AccessMode
cscap []*csi.ControllerServiceCapability
@@ -55,15 +58,25 @@ func NewSeaweedFsDriver(name, filer, nodeID, endpoint, mountEndpoint string, ena
util.LoadConfiguration("security", false)
+ // Derive volumeSocketDir from mountEndpoint
+ volumeSocketDir := mountmanager.DefaultSocketDir
+ if mountEndpoint != "" {
+ _, address, err := mountmanager.ParseEndpoint(mountEndpoint)
+ if err == nil && address != "" {
+ volumeSocketDir = filepath.Dir(address)
+ }
+ }
+
n := &SeaweedFsDriver{
- endpoint: endpoint,
- mountEndpoint: mountEndpoint,
- nodeID: nodeID,
- name: name,
- version: version,
- filers: pb.ServerAddresses(filer).ToAddresses(),
- grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.client"),
- signature: util.RandomInt32(),
+ endpoint: endpoint,
+ mountEndpoint: mountEndpoint,
+ volumeSocketDir: volumeSocketDir,
+ nodeID: nodeID,
+ name: name,
+ version: version,
+ filers: pb.ServerAddresses(filer).ToAddresses(),
+ grpcDialOption: security.LoadClientTLS(util.GetViper(), "grpc.client"),
+ signature: util.RandomInt32(),
}
n.AddVolumeCapabilityAccessModes([]csi.VolumeCapability_AccessMode_Mode{