aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-08-20 15:44:08 -0700
committerChris Lu <chris.lu@gmail.com>2021-08-20 15:44:10 -0700
commit670cf9f2da9c3d7fb629352aab00e72659bddb3c (patch)
tree116a81f822442570afe33823756e4d4996760493
parentc2653601dcf36e87b98b2eda655697b5402419c9 (diff)
downloadseaweedfs-csi-driver-670cf9f2da9c3d7fb629352aab00e72659bddb3c.tar.xz
seaweedfs-csi-driver-670cf9f2da9c3d7fb629352aab00e72659bddb3c.zip
map uid and gid via explicit CLI
-rw-r--r--cmd/seaweedfs-csi-driver/main.go4
-rw-r--r--pkg/driver/driver.go2
-rw-r--r--pkg/driver/mounter_seaweedfs.go9
3 files changed, 15 insertions, 0 deletions
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 <local_uid>:<filer_uid>")
+ gidMap = flag.String("map.gid", "", "map local gid to gid on filer, comma-separated <local_gid>:<filer_gid>")
)
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)