From 670cf9f2da9c3d7fb629352aab00e72659bddb3c Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Fri, 20 Aug 2021 15:44:08 -0700 Subject: map uid and gid via explicit CLI --- cmd/seaweedfs-csi-driver/main.go | 4 ++++ pkg/driver/driver.go | 2 ++ pkg/driver/mounter_seaweedfs.go | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/cmd/seaweedfs-csi-driver/main.go b/cmd/seaweedfs-csi-driver/main.go index 1320de0..52a6249 100644 --- a/cmd/seaweedfs-csi-driver/main.go +++ b/cmd/seaweedfs-csi-driver/main.go @@ -18,6 +18,8 @@ var ( concurrentWriters = flag.Int("concurrentWriters", 32, "limit concurrent goroutine writers if not 0") cacheSizeMB = flag.Int64("cacheCapacityMB", 1000, "local file chunk cache capacity in MB (0 will disable cache)") cacheDir = flag.String("cacheDir", os.TempDir(), "local cache directory for file chunks and meta data") + uidMap = flag.String("map.uid", "", "map local uid to uid on filer, comma-separated :") + gidMap = flag.String("map.gid", "", "map local gid to gid on filer, comma-separated :") ) func main() { @@ -39,5 +41,7 @@ func main() { drv.ConcurrentWriters = *concurrentWriters drv.CacheSizeMB = *cacheSizeMB drv.CacheDir = *cacheDir + drv.UidMap = *uidMap + drv.GidMap = *gidMap drv.Run() } diff --git a/pkg/driver/driver.go b/pkg/driver/driver.go index d6191c6..641d817 100644 --- a/pkg/driver/driver.go +++ b/pkg/driver/driver.go @@ -40,6 +40,8 @@ type SeaweedFsDriver struct { ConcurrentWriters int CacheSizeMB int64 CacheDir string + UidMap string + GidMap string } func NewSeaweedFsDriver(filer, nodeID, endpoint string) *SeaweedFsDriver { diff --git a/pkg/driver/mounter_seaweedfs.go b/pkg/driver/mounter_seaweedfs.go index c46d8c4..5b9ccb1 100644 --- a/pkg/driver/mounter_seaweedfs.go +++ b/pkg/driver/mounter_seaweedfs.go @@ -39,6 +39,9 @@ func (seaweedFs *seaweedFsMounter) Mount(target string) error { fmt.Sprintf("-cacheCapacityMB=%d", seaweedFs.driver.CacheSizeMB), } + // came from https://github.com/seaweedfs/seaweedfs-csi-driver/pull/12 + // preferring explicit settings + // keeping this for backward compatibility for arg, value := range seaweedFs.volContext { switch arg { case "map.uid": @@ -54,6 +57,12 @@ func (seaweedFs *seaweedFsMounter) Mount(target string) error { if seaweedFs.driver.CacheDir != "" { args = append(args, fmt.Sprintf("-cacheDir=%s", seaweedFs.driver.CacheDir)) } + if seaweedFs.driver.UidMap != "" { + args = append(args, fmt.Sprintf("-map.uid=%s", seaweedFs.driver.UidMap)) + } + if seaweedFs.driver.GidMap != "" { + args = append(args, fmt.Sprintf("-map.gid=%s", seaweedFs.driver.GidMap)) + } err := fuseMount(target, seaweedFsCmd, args) if err != nil { glog.Errorf("mount %s %s to %s: %s", seaweedFs.driver.filer, seaweedFs.bucketName, target, err) -- cgit v1.2.3