Rename Goofys mounter to GeeseFS and use it by default
This commit is contained in:
parent
322362ab88
commit
f723bccaf3
7 changed files with 90 additions and 91 deletions
pkg
|
@ -14,8 +14,8 @@ import (
|
|||
|
||||
var _ = Describe("S3Driver", func() {
|
||||
|
||||
Context("goofys", func() {
|
||||
socket := "/tmp/csi-goofys.sock"
|
||||
Context("geesefs", func() {
|
||||
socket := "/tmp/csi-geesefs.sock"
|
||||
csiEndpoint := "unix://" + socket
|
||||
if err := os.Remove(socket); err != nil && !os.IsNotExist(err) {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
@ -28,12 +28,12 @@ var _ = Describe("S3Driver", func() {
|
|||
|
||||
Describe("CSI sanity", func() {
|
||||
sanityCfg := &sanity.Config{
|
||||
TargetPath: os.TempDir() + "/goofys-target",
|
||||
StagingPath: os.TempDir() + "/goofys-staging",
|
||||
TargetPath: os.TempDir() + "/geesefs-target",
|
||||
StagingPath: os.TempDir() + "/geesefs-staging",
|
||||
Address: csiEndpoint,
|
||||
SecretsFile: "../../test/secret.yaml",
|
||||
TestVolumeParameters: map[string]string{
|
||||
"mounter": "goofys",
|
||||
"mounter": "geesefs",
|
||||
"bucket": "testbucket0",
|
||||
},
|
||||
}
|
||||
|
@ -41,8 +41,8 @@ var _ = Describe("S3Driver", func() {
|
|||
})
|
||||
})
|
||||
|
||||
Context("goofys-no-bucket", func() {
|
||||
socket := "/tmp/csi-goofys-no-bucket.sock"
|
||||
Context("geesefs-no-bucket", func() {
|
||||
socket := "/tmp/csi-geesefs-no-bucket.sock"
|
||||
csiEndpoint := "unix://" + socket
|
||||
if err := os.Remove(socket); err != nil && !os.IsNotExist(err) {
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
|
@ -55,12 +55,12 @@ var _ = Describe("S3Driver", func() {
|
|||
|
||||
Describe("CSI sanity", func() {
|
||||
sanityCfg := &sanity.Config{
|
||||
TargetPath: os.TempDir() + "/goofys-no-bucket-target",
|
||||
StagingPath: os.TempDir() + "/goofys-no-bucket-staging",
|
||||
TargetPath: os.TempDir() + "/geesefs-no-bucket-target",
|
||||
StagingPath: os.TempDir() + "/geesefs-no-bucket-staging",
|
||||
Address: csiEndpoint,
|
||||
SecretsFile: "../../test/secret.yaml",
|
||||
TestVolumeParameters: map[string]string{
|
||||
"mounter": "goofys",
|
||||
"mounter": "geesefs",
|
||||
},
|
||||
}
|
||||
sanity.GinkgoTest(sanityCfg)
|
||||
|
|
60
pkg/mounter/geesefs.go
Normal file
60
pkg/mounter/geesefs.go
Normal file
|
@ -0,0 +1,60 @@
|
|||
package mounter
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/ctrox/csi-s3/pkg/s3"
|
||||
)
|
||||
|
||||
const (
|
||||
geesefsCmd = "geesefs"
|
||||
defaultRegion = "us-east-1"
|
||||
)
|
||||
|
||||
// Implements Mounter
|
||||
type geesefsMounter struct {
|
||||
meta *s3.FSMeta
|
||||
endpoint string
|
||||
region string
|
||||
accessKeyID string
|
||||
secretAccessKey string
|
||||
}
|
||||
|
||||
func newGeeseFSMounter(meta *s3.FSMeta, cfg *s3.Config) (Mounter, error) {
|
||||
region := cfg.Region
|
||||
// if endpoint is set we need a default region
|
||||
if region == "" && cfg.Endpoint != "" {
|
||||
region = defaultRegion
|
||||
}
|
||||
return &geesefsMounter{
|
||||
meta: meta,
|
||||
endpoint: cfg.Endpoint,
|
||||
region: region,
|
||||
accessKeyID: cfg.AccessKeyID,
|
||||
secretAccessKey: cfg.SecretAccessKey,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (geesefs *geesefsMounter) Stage(stageTarget string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (geesefs *geesefsMounter) Unstage(stageTarget string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (geesefs *geesefsMounter) Mount(source string, target string) error {
|
||||
fullPath := fmt.Sprintf("%s:%s", geesefs.meta.BucketName, geesefs.meta.Prefix)
|
||||
// FIXME Add memory limits
|
||||
args := []string{
|
||||
"--endpoint", geesefs.endpoint,
|
||||
"--region", geesefs.region,
|
||||
"-o", "allow_other",
|
||||
fullPath, target,
|
||||
}
|
||||
args = append(args, geesefs.meta.MountOptions...)
|
||||
os.Setenv("AWS_ACCESS_KEY_ID", geesefs.accessKeyID)
|
||||
os.Setenv("AWS_SECRET_ACCESS_KEY", geesefs.secretAccessKey)
|
||||
return fuseMount(target, geesefsCmd, args)
|
||||
}
|
|
@ -1,60 +0,0 @@
|
|||
package mounter
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/ctrox/csi-s3/pkg/s3"
|
||||
)
|
||||
|
||||
const (
|
||||
goofysCmd = "goofys"
|
||||
defaultRegion = "us-east-1"
|
||||
)
|
||||
|
||||
// Implements Mounter
|
||||
type goofysMounter struct {
|
||||
meta *s3.FSMeta
|
||||
endpoint string
|
||||
region string
|
||||
accessKeyID string
|
||||
secretAccessKey string
|
||||
}
|
||||
|
||||
func newGoofysMounter(meta *s3.FSMeta, cfg *s3.Config) (Mounter, error) {
|
||||
region := cfg.Region
|
||||
// if endpoint is set we need a default region
|
||||
if region == "" && cfg.Endpoint != "" {
|
||||
region = defaultRegion
|
||||
}
|
||||
return &goofysMounter{
|
||||
meta: meta,
|
||||
endpoint: cfg.Endpoint,
|
||||
region: region,
|
||||
accessKeyID: cfg.AccessKeyID,
|
||||
secretAccessKey: cfg.SecretAccessKey,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (goofys *goofysMounter) Stage(stageTarget string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (goofys *goofysMounter) Unstage(stageTarget string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (goofys *goofysMounter) Mount(source string, target string) error {
|
||||
fullPath := fmt.Sprintf("%s:%s", goofys.meta.BucketName, goofys.meta.Prefix)
|
||||
// FIXME Add memory limits
|
||||
args := []string{
|
||||
"--endpoint", goofys.endpoint,
|
||||
"--region", goofys.region,
|
||||
"-o", "allow_other",
|
||||
fullPath, target,
|
||||
}
|
||||
args = append(args, goofys.meta.MountOptions...)
|
||||
os.Setenv("AWS_ACCESS_KEY_ID", goofys.accessKeyID)
|
||||
os.Setenv("AWS_SECRET_ACCESS_KEY", goofys.secretAccessKey)
|
||||
return fuseMount(target, goofysCmd, args)
|
||||
}
|
|
@ -27,7 +27,7 @@ type Mounter interface {
|
|||
|
||||
const (
|
||||
s3fsMounterType = "s3fs"
|
||||
goofysMounterType = "goofys"
|
||||
geesefsMounterType = "geesefs"
|
||||
s3backerMounterType = "s3backer"
|
||||
rcloneMounterType = "rclone"
|
||||
TypeKey = "mounter"
|
||||
|
@ -43,12 +43,12 @@ func New(meta *s3.FSMeta, cfg *s3.Config) (Mounter, error) {
|
|||
mounter = cfg.Mounter
|
||||
}
|
||||
switch mounter {
|
||||
case geesefsMounterType:
|
||||
return newGeeseFSMounter(meta, cfg)
|
||||
|
||||
case s3fsMounterType:
|
||||
return newS3fsMounter(meta, cfg)
|
||||
|
||||
case goofysMounterType:
|
||||
return newGoofysMounter(meta, cfg)
|
||||
|
||||
case s3backerMounterType:
|
||||
return newS3backerMounter(meta, cfg)
|
||||
|
||||
|
@ -56,8 +56,8 @@ func New(meta *s3.FSMeta, cfg *s3.Config) (Mounter, error) {
|
|||
return newRcloneMounter(meta, cfg)
|
||||
|
||||
default:
|
||||
// default to s3backer
|
||||
return newS3backerMounter(meta, cfg)
|
||||
// default to GeeseFS
|
||||
return newGeeseFSMounter(meta, cfg)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue