Add mount arguments as CSI volume parameters
This commit is contained in:
parent
5c89ac3f88
commit
4274180f3d
@ -4,8 +4,9 @@ import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||
"os/exec"
|
||||
|
||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||
"k8s.io/utils/mount"
|
||||
)
|
||||
|
||||
@ -19,8 +20,8 @@ type Mounter interface {
|
||||
Mount(target string) error
|
||||
}
|
||||
|
||||
func newMounter(bucketName string, driver *SeaweedFsDriver) (Mounter, error) {
|
||||
return newSeaweedFsMounter(bucketName, driver)
|
||||
func newMounter(bucketName string, driver *SeaweedFsDriver, volParameters map[string]string) (Mounter, error) {
|
||||
return newSeaweedFsMounter(bucketName, driver, volParameters)
|
||||
}
|
||||
|
||||
func fuseMount(path string, command string, args []string) error {
|
||||
|
||||
@ -8,18 +8,20 @@ import (
|
||||
|
||||
// Implements Mounter
|
||||
type seaweedFsMounter struct {
|
||||
bucketName string
|
||||
driver *SeaweedFsDriver
|
||||
bucketName string
|
||||
driver *SeaweedFsDriver
|
||||
volParameters map[string]string
|
||||
}
|
||||
|
||||
const (
|
||||
seaweedFsCmd = "weed"
|
||||
)
|
||||
|
||||
func newSeaweedFsMounter(bucketName string, driver *SeaweedFsDriver) (Mounter, error) {
|
||||
func newSeaweedFsMounter(bucketName string, driver *SeaweedFsDriver, volParameters map[string]string) (Mounter, error) {
|
||||
return &seaweedFsMounter{
|
||||
bucketName: bucketName,
|
||||
driver: driver,
|
||||
bucketName: bucketName,
|
||||
driver: driver,
|
||||
volParameters: volParameters,
|
||||
}, nil
|
||||
}
|
||||
|
||||
@ -35,6 +37,16 @@ func (seaweedFs *seaweedFsMounter) Mount(target string) error {
|
||||
fmt.Sprintf("-filer=%s", seaweedFs.driver.filer),
|
||||
fmt.Sprintf("-filer.path=/buckets/%s", seaweedFs.bucketName),
|
||||
}
|
||||
|
||||
for arg, value := range seaweedFs.volParameters {
|
||||
switch arg {
|
||||
case "map.uid":
|
||||
args = append(args, fmt.Sprintf("-map.uid=%s", value))
|
||||
case "map.gid":
|
||||
args = append(args, fmt.Sprintf("-map.gid=%s", value))
|
||||
}
|
||||
}
|
||||
|
||||
if seaweedFs.driver.ConcurrentWriters > 0 {
|
||||
args = append(args, fmt.Sprintf("-concurrentWriters=%d", seaweedFs.driver.ConcurrentWriters))
|
||||
}
|
||||
|
||||
@ -55,7 +55,9 @@ func (ns *NodeServer) NodePublishVolume(ctx context.Context, req *csi.NodePublis
|
||||
mo = append(mo, "ro")
|
||||
}
|
||||
|
||||
mounter, err := newMounter(volumeID, ns.Driver)
|
||||
volParameters := req.GetVolumeContext()
|
||||
|
||||
mounter, err := newMounter(volumeID, ns.Driver, volParameters)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user