diff --git a/cmd/storage-provisioner/main.go b/cmd/storage-provisioner/main.go index 6b097496a375..bd04c759b46a 100644 --- a/cmd/storage-provisioner/main.go +++ b/cmd/storage-provisioner/main.go @@ -17,7 +17,6 @@ limitations under the License. package main import ( - "flag" "fmt" "os" @@ -31,9 +30,10 @@ func main() { fmt.Fprintf(os.Stderr, "Error creating tmpdir: %v\n", err) os.Exit(1) } - flag.Parse() - if err := storage.StartStorageProvisioner(); err != nil { + var pvDir = "/tmp/hostpath-provisioner" + + if err := storage.StartStorageProvisioner(pvDir); err != nil { glog.Exit(err) } diff --git a/pkg/storage/storage_provisioner.go b/pkg/storage/storage_provisioner.go index 953b80aba944..5e2d3526cba7 100644 --- a/pkg/storage/storage_provisioner.go +++ b/pkg/storage/storage_provisioner.go @@ -45,9 +45,9 @@ type hostPathProvisioner struct { } // NewHostPathProvisioner creates a new Provisioner using host paths -func NewHostPathProvisioner() controller.Provisioner { +func NewHostPathProvisioner(pvDir string) controller.Provisioner { return &hostPathProvisioner{ - pvDir: "/tmp/hostpath-provisioner", + pvDir: pvDir, identity: uuid.NewUUID(), } } @@ -57,7 +57,7 @@ var _ controller.Provisioner = &hostPathProvisioner{} // Provision creates a storage asset and returns a PV object representing it. func (p *hostPathProvisioner) Provision(options controller.ProvisionOptions) (*core.PersistentVolume, error) { glog.Infof("Provisioning volume %v", options) - path := path.Join(p.pvDir, options.PVName) + path := path.Join(p.pvDir, options.PVC.Name) if err := os.MkdirAll(path, 0777); err != nil { return nil, err } @@ -103,8 +103,7 @@ func (p *hostPathProvisioner) Delete(volume *core.PersistentVolume) error { return &controller.IgnoredError{Reason: "identity annotation on PV does not match ours"} } - path := path.Join(p.pvDir, volume.Name) - if err := os.RemoveAll(path); err != nil { + if err := os.RemoveAll(volume.Spec.PersistentVolumeSource.HostPath.Path); err != nil { return errors.Wrap(err, "removing hostpath PV") } @@ -112,8 +111,9 @@ func (p *hostPathProvisioner) Delete(volume *core.PersistentVolume) error { } // StartStorageProvisioner will start storage provisioner server -func StartStorageProvisioner() error { +func StartStorageProvisioner(pvDir string) error { glog.Infof("Initializing the Minikube storage provisioner...") + config, err := rest.InClusterConfig() if err != nil { return err @@ -132,7 +132,7 @@ func StartStorageProvisioner() error { // Create the provisioner: it implements the Provisioner interface expected by // the controller - hostPathProvisioner := NewHostPathProvisioner() + hostPathProvisioner := NewHostPathProvisioner(pvDir) // Start the provision controller which will dynamically provision hostPath // PVs