September
18th,
2018
Small post to explain that if you ever need to use oc run and need to mount a volume for the process, then
it is possible to do this by using overrides:
Initially create the bash-claim pvc:
oc create -f https://gist.githubusercontent.com/welshstew/4f9532fd8737de1a43277c9154caa95e/raw/f3a705cebd65bf9c7188cfdeadb4976f32eed29c/bash-claim-pvc.ymlOnce the PVC is created you can use oc run with overrides to attach the PVC, note that the image is notused, since the image itself is overriden by the json overrides:
oc run some-pod --overrides='
{
"spec": {
"containers": [
{
"command": [
"/bin/bash",
"-c",
"for i in {1..5}; do echo hi stuff; sleep 5; done"
],
"image": "registry.access.redhat.com/rhel7/rhel:latest",
"name": "some-pod",
"volumeMounts": [{
"mountPath": "/var/data",
"name": "some-data"
}]
}
],
"volumes": [
{
"name": "some-data",
"persistentVolumeClaim": {
"claimName": "bash-claim"
}
}
]
}
}
' --image=notused --restart=NeverIt can be seen that the pod has mounted the volume.
[user@localhost ~]$ oc describe pods/some-pod
Name: some-pod
...
Environment: <none>
Mounts:
/var/data from some-data (rw)
/var/run/secrets/kubernetes.io/serviceaccount from default-token-xg5mj (ro)
Conditions:
Type Status
Initialized True
...All available on this public gist