From 83283adf0b7dcdf31348f45e9684363cea5763f3 Mon Sep 17 00:00:00 2001
From: Sameer Mene <sameer.mene@infovista.com>
Date: Thu, 9 Mar 2023 15:14:20 +0530
Subject: [PATCH] use storage class for path

---
 provisioner.go | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/provisioner.go b/provisioner.go
index 66c799f2..c5812d6a 100644
--- a/provisioner.go
+++ b/provisioner.go
@@ -230,6 +230,7 @@ func (p *LocalPathProvisioner) isSharedFilesystem() (bool, error) {
 func (p *LocalPathProvisioner) Provision(ctx context.Context, opts pvController.ProvisionOptions) (*v1.PersistentVolume, pvController.ProvisioningState, error) {
 	pvc := opts.PVC
 	node := opts.SelectedNode
+	storageClass := opts.StorageClass
 	sharedFS, err := p.isSharedFilesystem()
 	if err != nil {
 		return nil, pvController.ProvisioningFinished, err
@@ -253,7 +254,13 @@ func (p *LocalPathProvisioner) Provision(ctx context.Context, opts pvController.
 		// This clause works only with sharedFS
 		nodeName = node.Name
 	}
-	basePath, err := p.getRandomPathOnNode(nodeName)
+	var basePath string
+	basePath, err = p.getRandomPathOnNode(nodeName)
+	if storageClass.Parameters != nil {
+		if _, ok := storageClass.Parameters["path"]; ok {
+			basePath = storageClass.Parameters["path"]
+		}
+	}
 	if err != nil {
 		return nil, pvController.ProvisioningFinished, err
 	}
-- 
GitLab