aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chrislusf@users.noreply.github.com>2022-09-05 07:55:00 -0700
committerGitHub <noreply@github.com>2022-09-05 07:55:00 -0700
commit006d723392a8359eb5b4d251f7362755fcaf7787 (patch)
treef0d61b04b565edc0952a6d149c766b70566f94bf
parenta5808d5f084cb0194bda12aa68ba1807ac213926 (diff)
parent413439589f08012a559eb6c11e4a51afdc636b35 (diff)
downloadseaweedfs-csi-driver-006d723392a8359eb5b4d251f7362755fcaf7787.tar.xz
seaweedfs-csi-driver-006d723392a8359eb5b4d251f7362755fcaf7787.zip
Merge pull request #84 from kvaster/pv-settings
-rw-r--r--cmd/seaweedfs-csi-driver/main.go2
-rw-r--r--deploy/helm/seaweedfs-csi-driver/templates/daemonset.yml5
-rw-r--r--pkg/driver/driver.go2
-rw-r--r--pkg/driver/mounter_seaweedfs.go36
4 files changed, 35 insertions, 10 deletions
diff --git a/cmd/seaweedfs-csi-driver/main.go b/cmd/seaweedfs-csi-driver/main.go
index 76f5829..8eedce3 100644
--- a/cmd/seaweedfs-csi-driver/main.go
+++ b/cmd/seaweedfs-csi-driver/main.go
@@ -16,7 +16,7 @@ var (
nodeID = flag.String("nodeid", "", "node id")
version = flag.Bool("version", false, "Print the version and exit.")
concurrentWriters = flag.Int("concurrentWriters", 32, "limit concurrent goroutine writers if not 0")
- cacheSizeMB = flag.Int64("cacheCapacityMB", 0, "local file chunk cache capacity in MB")
+ cacheSizeMB = flag.Int("cacheCapacityMB", 0, "local file chunk cache capacity in MB")
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>")
diff --git a/deploy/helm/seaweedfs-csi-driver/templates/daemonset.yml b/deploy/helm/seaweedfs-csi-driver/templates/daemonset.yml
index 8e768d3..7c47649 100644
--- a/deploy/helm/seaweedfs-csi-driver/templates/daemonset.yml
+++ b/deploy/helm/seaweedfs-csi-driver/templates/daemonset.yml
@@ -61,6 +61,7 @@ spec:
- "--endpoint=$(CSI_ENDPOINT)"
- "--filer=$(SEAWEEDFS_FILER)"
- "--nodeid=$(NODE_ID)"
+ - "--cacheDir=/var/cache/seaweedfs"
env:
- name: CSI_ENDPOINT
value: unix:///csi/csi.sock
@@ -99,6 +100,8 @@ spec:
- name: tls
mountPath: /var/run/secrets/app/tls
{{- end }}
+ - name: cache
+ mountPath: /var/cache/seaweedfs
volumes:
- name: registration-dir
hostPath:
@@ -119,6 +122,8 @@ spec:
- name: device-dir
hostPath:
path: /dev
+ - name: cache
+ emptyDir: {}
{{- if .Values.tlsSecret }}
- name: tls
secret:
diff --git a/pkg/driver/driver.go b/pkg/driver/driver.go
index 55cf0a3..00ef2d9 100644
--- a/pkg/driver/driver.go
+++ b/pkg/driver/driver.go
@@ -39,7 +39,7 @@ type SeaweedFsDriver struct {
filerIndex int
grpcDialOption grpc.DialOption
ConcurrentWriters int
- CacheSizeMB int64
+ CacheSizeMB int
CacheDir string
UidMap string
GidMap string
diff --git a/pkg/driver/mounter_seaweedfs.go b/pkg/driver/mounter_seaweedfs.go
index 5cbca71..64af21a 100644
--- a/pkg/driver/mounter_seaweedfs.go
+++ b/pkg/driver/mounter_seaweedfs.go
@@ -34,6 +34,25 @@ func newSeaweedFsMounter(volumeID string, path string, collection string, readOn
}, nil
}
+func (seaweedFs *seaweedFsMounter) getOrDefaultContext(key string, defaultValue string) string {
+ v, ok := seaweedFs.volContext[key]
+ if ok {
+ return v
+ }
+ return defaultValue
+}
+
+func (seaweedFs *seaweedFsMounter) getOrDefaultContextInt(key string, defaultValue int) int {
+ v := seaweedFs.getOrDefaultContext(key, "")
+ if v != "" {
+ iv, err := strconv.Atoi(v)
+ if err != nil {
+ return iv
+ }
+ }
+ return defaultValue
+}
+
func (seaweedFs *seaweedFsMounter) Mount(target string) (Unmounter, error) {
glog.V(0).Infof("mounting %v %s to %s", seaweedFs.driver.filers, seaweedFs.path, target)
@@ -51,7 +70,7 @@ func (seaweedFs *seaweedFsMounter) Mount(target string) (Unmounter, error) {
fmt.Sprintf("-collection=%s", seaweedFs.collection),
fmt.Sprintf("-filer=%s", strings.Join(filers, ",")),
fmt.Sprintf("-filer.path=%s", seaweedFs.path),
- fmt.Sprintf("-cacheCapacityMB=%d", seaweedFs.driver.CacheSizeMB),
+ fmt.Sprintf("-cacheCapacityMB=%d", seaweedFs.getOrDefaultContextInt("cacheSizeMB", seaweedFs.driver.CacheSizeMB)),
fmt.Sprintf("-localSocket=%s", GetLocalSocket(seaweedFs.volumeID)),
}
@@ -78,17 +97,18 @@ func (seaweedFs *seaweedFsMounter) Mount(target string) (Unmounter, error) {
args = append(args, "-readOnly")
}
- if seaweedFs.driver.ConcurrentWriters > 0 {
- args = append(args, fmt.Sprintf("-concurrentWriters=%d", seaweedFs.driver.ConcurrentWriters))
- }
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 cw := seaweedFs.getOrDefaultContextInt("concurrentWriters", seaweedFs.driver.ConcurrentWriters); cw > 0 {
+ args = append(args, fmt.Sprintf("-concurrentWriters=%d", cw))
+ }
+ if uidMap := seaweedFs.getOrDefaultContext("uidMap", seaweedFs.driver.UidMap); uidMap != "" {
+ args = append(args, fmt.Sprintf("-map.uid=%s", uidMap))
}
- if seaweedFs.driver.GidMap != "" {
- args = append(args, fmt.Sprintf("-map.gid=%s", seaweedFs.driver.GidMap))
+ if gidMap := seaweedFs.getOrDefaultContext("gidMap", seaweedFs.driver.GidMap); gidMap != "" {
+ args = append(args, fmt.Sprintf("-map.gid=%s", gidMap))
}
u, err := fuseMount(target, seaweedFsCmd, args)