Merge pull request #12 from danlsgiga/add-volume-mount-params
Add map.uid and map.gid volume mount params via volume context
This commit is contained in:
commit
30cd8c4168
@ -4,8 +4,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
|
||||||
|
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||||
"k8s.io/utils/mount"
|
"k8s.io/utils/mount"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -19,8 +20,8 @@ type Mounter interface {
|
|||||||
Mount(target string) error
|
Mount(target string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
func newMounter(bucketName string, driver *SeaweedFsDriver) (Mounter, error) {
|
func newMounter(bucketName string, driver *SeaweedFsDriver, volContext map[string]string) (Mounter, error) {
|
||||||
return newSeaweedFsMounter(bucketName, driver)
|
return newSeaweedFsMounter(bucketName, driver, volContext)
|
||||||
}
|
}
|
||||||
|
|
||||||
func fuseMount(path string, command string, args []string) error {
|
func fuseMount(path string, command string, args []string) error {
|
||||||
|
|||||||
@ -10,21 +10,23 @@ import (
|
|||||||
type seaweedFsMounter struct {
|
type seaweedFsMounter struct {
|
||||||
bucketName string
|
bucketName string
|
||||||
driver *SeaweedFsDriver
|
driver *SeaweedFsDriver
|
||||||
|
volContext map[string]string
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
seaweedFsCmd = "weed"
|
seaweedFsCmd = "weed"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newSeaweedFsMounter(bucketName string, driver *SeaweedFsDriver) (Mounter, error) {
|
func newSeaweedFsMounter(bucketName string, driver *SeaweedFsDriver, volContext map[string]string) (Mounter, error) {
|
||||||
return &seaweedFsMounter{
|
return &seaweedFsMounter{
|
||||||
bucketName: bucketName,
|
bucketName: bucketName,
|
||||||
driver: driver,
|
driver: driver,
|
||||||
|
volContext: volContext,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (seaweedFs *seaweedFsMounter) Mount(target string) error {
|
func (seaweedFs *seaweedFsMounter) Mount(target string) error {
|
||||||
glog.V(0).Infof("mounting %s%s to %s", seaweedFs.driver.filer, seaweedFs.bucketName, target)
|
glog.V(0).Infof("mounting %s %s to %s", seaweedFs.driver.filer, seaweedFs.bucketName, target)
|
||||||
|
|
||||||
args := []string{
|
args := []string{
|
||||||
"mount",
|
"mount",
|
||||||
@ -35,6 +37,16 @@ func (seaweedFs *seaweedFsMounter) Mount(target string) error {
|
|||||||
fmt.Sprintf("-filer=%s", seaweedFs.driver.filer),
|
fmt.Sprintf("-filer=%s", seaweedFs.driver.filer),
|
||||||
fmt.Sprintf("-filer.path=/buckets/%s", seaweedFs.bucketName),
|
fmt.Sprintf("-filer.path=/buckets/%s", seaweedFs.bucketName),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for arg, value := range seaweedFs.volContext {
|
||||||
|
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 {
|
if seaweedFs.driver.ConcurrentWriters > 0 {
|
||||||
args = append(args, fmt.Sprintf("-concurrentWriters=%d", seaweedFs.driver.ConcurrentWriters))
|
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")
|
mo = append(mo, "ro")
|
||||||
}
|
}
|
||||||
|
|
||||||
mounter, err := newMounter(volumeID, ns.Driver)
|
volContext := req.GetVolumeContext()
|
||||||
|
|
||||||
|
mounter, err := newMounter(volumeID, ns.Driver, volContext)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -163,4 +165,4 @@ func checkMount(targetPath string) (bool, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return notMnt, nil
|
return notMnt, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user