YAML Specification#
slappt
supports declarative YAML configuration to make container workflows reusable.
# standard attributes
image: # the container image definition to use, e.g. docker://alpine (registry prefix is required)
shell: # the shell to use (default: bash)
partition: # the cluster partition to submit to
entrypoint: # the command to run inside the container
workdir: # the working directory to use
email: # the email address to send notifications to
name: # the name of the job (default: slappt.<guid>)
pre: # a list of commands to run before invoking the container (e.g. loading modules)
inputs: # a text file containing a newline-separated list of input files
environment: # a dictionary of environment variables to set
bind_mounts: # a list of bind mounts to use, in format <host path>:<container path>
no_cache: # don't use the apptainer/singularity cache, force a rebuild of the image (default: false)
gpus: # the number of GPUs to request
time: # the job's walltime
account: # the account name to associate the job with
mem: # the amount of memory to request (default: 1GB)
nodes: # the number of nodes to request (default: 1)
cores: # the number of cores to request (default: 1)
tasks: # the number of tasks to request (default: 1)
header_skip: # a list of header lines to skip when parsing the input file (can be useful e.g. for clusters which have virtual memory and reject --mem headers)
singularity: # whether to invoke singularity instead of apptainer (default: false)
# submission attributes
host: # the hostname, IP or FQDN of the remote cluster to submit to
port: # the port to use for the SSH connection (default: 22)
username: # the username to use for the SSH connection
password: # the password to use for SSH authentication
pkey: # the path to the private key to use for SSH authentication
allow_stderr: # don't raise an error if sshlurm encounters stderr output (default: false)
timeout: # the timeout for the SSH connection (default: 10)