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) | Description | Required |
---|---|---|---|
cpuCount | cpu_count | Maximum number of CPUs usable at the same time in the whole pipeline. See here for more details. | No, default 1 |
memoryMb | memory_mb | Maximum amount of RAM usable at the same time in the whole pipeline. See here for more details. | No, default 1024MB |
name | name | Indicative name of the pipeline. | No |
stages | stages | List of stages to execute. Only one stage is executed at a time. See here for more details | Yes, must not be empty |
timeout | timeout | Global timeout of the pipeline in seconds | No, default 60 |
variables | variables | Map of environment variables that will be cascaded down to all tasks | No |
Stage properties
Name (CC or SC) | Description | Required |
---|---|---|
name | Indicative name of the stage | No |
tasks | Tasks 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 |
variables | Map of environment variables that will be cascaded down to all tasks | No |
Task properties
Note that command
+ commandInterpreter
and commands
are mutually
exclusive. You must either define command
, commandInterpreter
+ command
,
or commands
.
Name (CC) | Name (SC) | Description | Required | docker run equivalent |
---|---|---|---|---|
capabilities | capabilities | Capabilities to add to the task | No | --cap-add |
command | command | Command to execute in the Docker container using the image | See above | COMMAND argument |
commandInterpreter | command_interpreter | Interpreter to use for the command. Must be used to gether | See above | --entrypoint |
commands | commands | List of commands to run as an entrypoint. | See above | See below* |
cpus | cpus | Number of CPU cores allocated to the task. | No, default 1 | --cpuset-cpus , similar to --cpus |
image | image | Docker image to use for the task. See here for the constraints relative to Docker images. The image pulling has a timeout of 300 seconds. | Yes | IMAGE argument |
inputFilePath | input_file_path | Path where the pipeline input will be mounted. See here for more information | No | Translated to -v |
interruptOnFailure | interrupt_on_failure | If true, the pipeline fails if the task returns with a non-zero exit code. | No, by default false | N/A |
memoryMb | memory_mb | Amount of RAM allocated to the task. | No, default 1024MB | --memory |
mounts | mounts | List of mounts for the task | N o | Translated to -v |
name | name | Indicative name of the task | No | N/A |
outputFilePath | output_file_path | Path where the pipeline output will be mounted. See here for more information | No | Translated to -v |
timeout | timeout | Timeout of the task in seconds | No, default 60 | --timeout |
variables | variables | Map of environment variables that will be provided to the Docker container. This will also include environment variables defined in the parent stage and workflow. | No | Multiple -e |
workdir | workdir | Working directory where the command(s) will be ran | No | --workdir |
* The list is pasted into a file, which is mounted then ran is the container as an entrypoint.