Skip to content
Snippets Groups Projects
Commit 7322467a authored by mingtingzhang's avatar mingtingzhang Committed by Sheng Yang
Browse files

add scripts to make it configurable for users when add/removing a dir

parent 4fc53291
No related branches found
No related tags found
No related merge requests found
...@@ -129,6 +129,14 @@ data: ...@@ -129,6 +129,14 @@ data:
} }
] ]
} }
setup: |-
#!/bin/sh
path=$1
mkdir -m 0777 -p ${path}
teardown: |-
#!/bin/sh
path=$1
rm -rf ${path}
``` ```
......
...@@ -71,6 +71,8 @@ default values. ...@@ -71,6 +71,8 @@ default values.
| `nodeSelector` | Node labels for Local Path Provisioner pod assignment | `{}` | | `nodeSelector` | Node labels for Local Path Provisioner pod assignment | `{}` |
| `tolerations` | Node taints to tolerate | `[]` | | `tolerations` | Node taints to tolerate | `[]` |
| `affinity` | Pod affinity | `{}` | | `affinity` | Pod affinity | `{}` |
| `setup` | Configuration of script to execute setup operations on each node | #!/bin/sh<br>path=$1<br>mkdir -m 0777 -p ${path} |
| `teardown` | Configuration of script to execute teardown operations on each node | #!/bin/sh<br>path=$1<br>rm -rf ${path} |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
......
...@@ -11,3 +11,7 @@ data: ...@@ -11,3 +11,7 @@ data:
{ {
"nodePathMap": {{ .Values.nodePathMap | toPrettyJson | nindent 8 }} "nodePathMap": {{ .Values.nodePathMap | toPrettyJson | nindent 8 }}
} }
setup: |-
{{ .Values.setup | nindent 4 }}
teardown: |-
{{ .Values.teardown | nindent 4 }}
...@@ -78,3 +78,13 @@ nodeSelector: {} ...@@ -78,3 +78,13 @@ nodeSelector: {}
tolerations: [] tolerations: []
affinity: {} affinity: {}
setup: |-
#!/bin/sh
path=$1
mkdir -m 0777 -p ${path}
teardown: |-
#!/bin/sh
path=$1
rm -rf ${path}
...@@ -21,4 +21,12 @@ data: ...@@ -21,4 +21,12 @@ data:
} }
] ]
} }
setup: |-
#!/bin/sh
path=$1
mkdir -m 0777 -p ${path}
teardown: |-
#!/bin/sh
path=$1
rm -rf ${path}
...@@ -102,4 +102,12 @@ data: ...@@ -102,4 +102,12 @@ data:
} }
] ]
} }
setup: |-
#!/bin/sh
path=$1
mkdir -m 0777 -p ${path}
teardown: |-
#!/bin/sh
path=$1
rm -rf ${path}
...@@ -190,9 +190,8 @@ func (p *LocalPathProvisioner) Provision(opts pvController.ProvisionOptions) (*v ...@@ -190,9 +190,8 @@ func (p *LocalPathProvisioner) Provision(opts pvController.ProvisionOptions) (*v
logrus.Infof("Creating volume %v at %v:%v", name, node.Name, path) logrus.Infof("Creating volume %v at %v:%v", name, node.Name, path)
createCmdsForPath := []string{ createCmdsForPath := []string{
"mkdir", "/bin/sh",
"-m", "0777", "/script/setup",
"-p",
} }
if err := p.createHelperPod(ActionTypeCreate, createCmdsForPath, name, path, node.Name); err != nil { if err := p.createHelperPod(ActionTypeCreate, createCmdsForPath, name, path, node.Name); err != nil {
return nil, err return nil, err
...@@ -248,7 +247,7 @@ func (p *LocalPathProvisioner) Delete(pv *v1.PersistentVolume) (err error) { ...@@ -248,7 +247,7 @@ func (p *LocalPathProvisioner) Delete(pv *v1.PersistentVolume) (err error) {
} }
if pv.Spec.PersistentVolumeReclaimPolicy != v1.PersistentVolumeReclaimRetain { if pv.Spec.PersistentVolumeReclaimPolicy != v1.PersistentVolumeReclaimRetain {
logrus.Infof("Deleting volume %v at %v:%v", pv.Name, node, path) logrus.Infof("Deleting volume %v at %v:%v", pv.Name, node, path)
cleanupCmdsForPath := []string{"rm", "-rf"} cleanupCmdsForPath := []string{"/bin/sh", "/script/teardown"}
if err := p.createHelperPod(ActionTypeDelete, cleanupCmdsForPath, pv.Name, path, node); err != nil { if err := p.createHelperPod(ActionTypeDelete, cleanupCmdsForPath, pv.Name, path, node); err != nil {
logrus.Infof("clean up volume %v failed: %v", pv.Name, err) logrus.Infof("clean up volume %v failed: %v", pv.Name, err)
return err return err
...@@ -324,6 +323,7 @@ func (p *LocalPathProvisioner) createHelperPod(action ActionType, cmdsForPath [] ...@@ -324,6 +323,7 @@ func (p *LocalPathProvisioner) createHelperPod(action ActionType, cmdsForPath []
helperPod := &v1.Pod{ helperPod := &v1.Pod{
ObjectMeta: metav1.ObjectMeta{ ObjectMeta: metav1.ObjectMeta{
Name: string(action) + "-" + name, Name: string(action) + "-" + name,
Namespace: p.namespace,
}, },
Spec: v1.PodSpec{ Spec: v1.PodSpec{
RestartPolicy: v1.RestartPolicyNever, RestartPolicy: v1.RestartPolicyNever,
...@@ -344,6 +344,11 @@ func (p *LocalPathProvisioner) createHelperPod(action ActionType, cmdsForPath [] ...@@ -344,6 +344,11 @@ func (p *LocalPathProvisioner) createHelperPod(action ActionType, cmdsForPath []
ReadOnly: false, ReadOnly: false,
MountPath: "/data/", MountPath: "/data/",
}, },
{
Name: "script",
ReadOnly: false,
MountPath: "/script",
},
}, },
ImagePullPolicy: v1.PullIfNotPresent, ImagePullPolicy: v1.PullIfNotPresent,
}, },
...@@ -358,6 +363,26 @@ func (p *LocalPathProvisioner) createHelperPod(action ActionType, cmdsForPath [] ...@@ -358,6 +363,26 @@ func (p *LocalPathProvisioner) createHelperPod(action ActionType, cmdsForPath []
}, },
}, },
}, },
{
Name: "script",
VolumeSource: v1.VolumeSource{
ConfigMap: &v1.ConfigMapVolumeSource{
LocalObjectReference: v1.LocalObjectReference{
Name: "local-path-config",
},
Items: []v1.KeyToPath{
{
Key: "setup",
Path: "setup",
},
{
Key: "teardown",
Path: "teardown",
},
},
},
},
},
}, },
}, },
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment