Updated provisioner with file permission
This commit is contained in:
parent
59a3ca2cd1
commit
e55a186892
|
|
@ -41,6 +41,7 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
provisionerNameKey = "PROVISIONER_NAME"
|
provisionerNameKey = "PROVISIONER_NAME"
|
||||||
|
defaultPermission = 0o770
|
||||||
)
|
)
|
||||||
|
|
||||||
type nfsProvisioner struct {
|
type nfsProvisioner struct {
|
||||||
|
|
@ -79,6 +80,18 @@ const (
|
||||||
|
|
||||||
var _ controller.Provisioner = &nfsProvisioner{}
|
var _ controller.Provisioner = &nfsProvisioner{}
|
||||||
|
|
||||||
|
func getFilePermission() os.FileMode {
|
||||||
|
permStr := os.Getenv("NFS_VOLUME_PERMISSION")
|
||||||
|
if permStr != "" {
|
||||||
|
perm, err := strconv.ParseUint(permStr, 8, 32)
|
||||||
|
if err == nil {
|
||||||
|
return os.FileMode(perm)
|
||||||
|
}
|
||||||
|
glog.Warningf("Invalid NFS_VOLUME_PERMISSION value: %s, using default %o", permStr, defaultPermission)
|
||||||
|
}
|
||||||
|
return defaultPermission
|
||||||
|
}
|
||||||
|
|
||||||
func (p *nfsProvisioner) Provision(ctx context.Context, options controller.ProvisionOptions) (*v1.PersistentVolume, controller.ProvisioningState, error) {
|
func (p *nfsProvisioner) Provision(ctx context.Context, options controller.ProvisionOptions) (*v1.PersistentVolume, controller.ProvisioningState, error) {
|
||||||
if options.PVC.Spec.Selector != nil {
|
if options.PVC.Spec.Selector != nil {
|
||||||
return nil, controller.ProvisioningFinished, fmt.Errorf("claim Selector is not supported")
|
return nil, controller.ProvisioningFinished, fmt.Errorf("claim Selector is not supported")
|
||||||
|
|
@ -112,10 +125,10 @@ func (p *nfsProvisioner) Provision(ctx context.Context, options controller.Provi
|
||||||
}
|
}
|
||||||
|
|
||||||
glog.V(4).Infof("creating path %s", fullPath)
|
glog.V(4).Infof("creating path %s", fullPath)
|
||||||
if err := os.MkdirAll(fullPath, 0o777); err != nil {
|
if err := os.MkdirAll(fullPath, getFilePermission()); err != nil {
|
||||||
return nil, controller.ProvisioningFinished, errors.New("unable to create directory to provision new pv: " + err.Error())
|
return nil, controller.ProvisioningFinished, errors.New("unable to create directory to provision new pv: " + err.Error())
|
||||||
}
|
}
|
||||||
err := os.Chmod(fullPath, 0o777)
|
err := os.Chmod(fullPath, getFilePermission())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue