Skip to main content

MaaS Reference

Here is the complete model of the workflow. This is what you need to put in the workflow field of your submission or, if said field is null, the WORKFLOW document (in YAML) is used.

Property names

When using inline workflows (directly specifying the workflow in a submission), the format used is camel case. Refer to the "(CC)" columns.

When using a separate workflow document (as a separate yaml file referenced in the assignment's documents), the format used is snake case. Refer to the "(SC)" columns.

Workflow properties

Name (CC)Name (SC)DescriptionRequired
cpuCountcpu_countMaximum number of CPUs usable at the same time in the whole pipeline. See here for more details.No, default 1
memoryMbmemory_mbMaximum amount of RAM usable at the same time in the whole pipeline. See here for more details.No, default 1024MB
namenameIndicative name of the pipeline.No
stagesstagesList of stages to execute. Only one stage is executed at a time. See here for more detailsYes, must not be empty
timeouttimeoutGlobal timeout of the pipeline in secondsNo, default 60
variablesvariablesMap of environment variables that will be cascaded down to all tasksNo

Stage properties

Name (CC or SC)DescriptionRequired
nameIndicative name of the stageNo
tasksTasks executed in the stage. Tasks in the same stages are executed in parallel as much as the resources (cpu/memory) allow them to.Yes, must not be empty
variablesMap of environment variables that will be cascaded down to all tasksNo

Task properties

Note that command + commandInterpreter and commands are mutually exclusive. You must either define command, commandInterpreter + command, or commands.

Name (CC)Name (SC)DescriptionRequireddocker run equivalent
capabilitiescapabilitiesCapabilities to add to the taskNo--cap-add
commandcommandCommand to execute in the Docker container using the imageSee aboveCOMMAND argument
commandInterpretercommand_interpreterInterpreter to use for the command. Must be used to getherSee above--entrypoint
commandscommandsList of commands to run as an entrypoint.See aboveSee below*
cpuscpusNumber of CPU cores allocated to the task.No, default 1--cpuset-cpus, similar to --cpus
imageimageDocker image to use for the task. See here for the constraints relative to Docker images. The image pulling has a timeout of 300 seconds.YesIMAGE argument
inputFilePathinput_file_pathPath where the pipeline input will be mounted. See here for more informationNoTranslated to -v
interruptOnFailureinterrupt_on_failureIf true, the pipeline fails if the task returns with a non-zero exit code.No, by default falseN/A
memoryMbmemory_mbAmount of RAM allocated to the task.No, default 1024MB--memory
mountsmountsList of mounts for the taskN oTranslated to -v
namenameIndicative name of the taskNoN/A
outputFilePathoutput_file_pathPath where the pipeline output will be mounted. See here for more informationNoTranslated to -v
timeouttimeoutTimeout of the task in secondsNo, default 60--timeout
variablesvariablesMap of environment variables that will be provided to the Docker container. This will also include environment variables defined in the parent stage and workflow.NoMultiple -e
workdirworkdirWorking directory where the command(s) will be ranNo--workdir

* The list is pasted into a file, which is mounted then ran is the container as an entrypoint.