You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is a need for having data mounted into the container that is not part of the workflow work directory but rather encapsulated information that is only needed by the specific job.
Examples are
normally, we submit a container and a cmd to the job controller, where the cmd is prepared by the workflow controller (it constructs the from a template, and workflow specific data, like file paths that are only known at run-time. Sometimes the cmd is pretty long and a one-off multi-linescript is a better choice. The script can be constructed by the workflow controller, but needs to be mounted into the container by the job controller
Example:
cat /path/only/known/at/runtime/by/wflowcontroller/input.txt
echo some
echo very
echo long
echo script
cat /path/only/known/at/runtime/by/wflowcontroller/output.txt
we would like this to be mounted at some well-defined location in the container say /reana/script, such that we can submit a job with command: bash /reana/script
The Job manifest could look like this
experiment: ATLAS
docker_img: my_atlas_analysis
cmd: bash /reana/script
aux_mounts:
- mountpath: /reana/script
data: |
echo some
echo very
echo long
echo script
a related Example deals with situations when the commands/script become to large, we'd like to mount some of the data into the container. Take the example of merging 500 ROOT files into a single output file. For few files this is possible via hadd merged.root inputA.root inputB.root. For large lists (of absolute paths) this can become unworkable, and we'd rather write a script such as merge.py merged.root inputfiles.json. The inputfiles.json can be constructed by the workflow controller and submitted like so:
There is a need for having data mounted into the container that is not part of the workflow work directory but rather encapsulated information that is only needed by the specific job.
Examples are
container
and acmd
to the job controller, where the cmd is prepared by the workflow controller (it constructs the from a template, and workflow specific data, like file paths that are only known at run-time. Sometimes the cmd is pretty long and a one-off multi-linescript
is a better choice. The script can be constructed by the workflow controller, but needs to be mounted into the container by the job controllerExample:
we would like this to be mounted at some well-defined location in the container say
/reana/script
, such that we can submit a job withcommand: bash /reana/script
The Job manifest could look like this
hadd merged.root inputA.root inputB.root
. For large lists (of absolute paths) this can become unworkable, and we'd rather write a script such asmerge.py merged.root inputfiles.json
. Theinputfiles.json
can be constructed by the workflow controller and submitted like so:Implementation:
Kubernetes should transparently support this via either secrets or configmaps
The text was updated successfully, but these errors were encountered: