Release#

Represents a Module along with its lifecycle (deprecation) status.

type

object

properties

  • module

Module (name, version & configuration) to release

Module

  • deprecated

Deprecated

Whether this Module version is deprecated

type

boolean

default

False

ApptainerApp#

Represents an Apptainer application or set of applications using a single image.

This uses Apptainer to deploy a portable image of the desired container. Multiple entrypoints can be specified to allow different commands to be run on the same container image.

type

object

properties

  • app_type

App Type

An Apptainer (executable container image) with multiple potential entrypoints

type

string

const

apptainer

  • container

Container URL information

ContainerImage

  • entrypoints

Entrypoints

List of executables to run using the Apptainer

type

array

items

Entrypoint

  • global_options

Global options that apply to all Entrypoints

default

apptainer_args

command_args

mounts

host_binaries

EntrypointOptions

BinaryApp#

Represents a standalone Binary application.

This will fetch a standalone binary, validate its hash and add its location to the path.

type

object

properties

  • app_type

App Type

A standalone binary to be downloaded and added to the path

type

string

const

binary

  • name

Name

Name of executable to use after loading the Module. Must start with a letter or underscore and contain only letters, digits, hyphens or underscores.

type

string

  • url

Url

URL to download the binary from

type

string

minLength

1

format

uri

  • hash

Hash

Hash to verify binary integrity

type

string

default

  • hash_type

Type of hash used to check the binary

HashType

ContainerImage#

Reference to a container image, split into a base path and version/tag.

type

object

properties

  • path

Path

Image URL excluding the version/tag. Must be a valid URL as described here: https://apptainer.org/docs/user/main/cli/apptainer_pull.html#synopsis

type

string

minLength

1

format

uri

  • version

Version

Version or tag of the docker image. Must follow the OCI tag format: start with a letter, digit or underscore, followed by up to 127 letters, digits, full stops, hyphens or underscores.

type

string

Entrypoint#

Represents an entrypoint to a command on the Apptainer image.

If no command is provided, the entrypoint (name) is used by default. This corresponds to the name of the executable provided by the Module.

type

object

properties

  • name

Name

Name of executable to use after loading the Module. Must start with a letter or underscore and contain only letters, digits, hyphens or underscores.

type

string

  • command

Command

Command to run in container. Defaults to name

default

null

anyOf

type

string

type

null

  • options

Options to apply for this entrypoint

default

apptainer_args

command_args

mounts

host_binaries

EntrypointOptions

EntrypointOptions#

Options applied when running an Apptainer entrypoint.

type

object

properties

  • apptainer_args

Apptainer Args

Apptainer arguments to pass when launching the container

type

string

default

  • command_args

Command Args

Arguments to pass to command entrypoint

type

string

default

  • mounts

Mounts

A list of mount points to add to the container in the form of ‘host_path[:container_path[:opts]]’ where opts (mount options) can be ‘ro’ or ‘rw’ and defaults to ‘rw’

type

array

default

items

MountPoint

  • host_binaries

Host Binaries

A list of host binaries to mount into the container. These are discovered on the host using the current PATH and are mounted into the container at /usr/bin/[binary_name]

type

array

default

items

type

string

EnvVar#

Represents an environment variable to set when loading the Module.

type

object

properties

  • name

Name

Name of environment variable. Must start with a letter or underscore and contain only letters, digits or underscores.

type

string

  • value

Value

Value of environment variable

type

string

HashType#

Type of hash to use for the binary.

type

string

enum

sha256, sha512, md5, none

Module#

Represents a Module to be deployed.

Modules can optionally include a set of applications, environment variables to load, and a list of module dependencies.

type

object

properties

  • name

Name

Name of module to use when loading. Must start with a letter and contain only letters, digits, hyphens or underscores.

type

string

  • version

Version

Version of this module. This cannot include spaces, cannot start with a full stop and the filename must match as [version].yaml

type

string

  • description

Description

Description that can be read with the module whatis [module-name] command

default

null

anyOf

type

string

type

null

  • dependencies

Dependencies

List of module dependencies

type

array

default

items

ModuleDependency

  • env_vars

Env Vars

List of environment variables to set when loading module

type

array

default

items

EnvVar

  • applications

Applications

Applications to be included in Module

type

array

items

oneOf

ApptainerApp

ShellApp

BinaryApp

  • allow_updates

Allow Updates

Allow updates to this module version after initial deployment

type

boolean

default

False

  • exclude_from_defaults

Exclude From Defaults

Exclude this module version from being automatically set as default, but you can still manually set it. This is used for e.g. alphas

type

boolean

default

False

  • load_script

Load Script

Provide list of commands that are run on module load. You need to add system before any bash command (e.g. system ls /dir), as Modulefiles otherwise use Tcl. This field should be used carefully; please speak to a deploy-tools admin before use

type

array

default

items

type

string

  • unload_script

Unload Script

Provide list of commands that are run on module unload. You need to add system before any bash command (e.g. system ls /dir), as Modulefiles otherwise use Tcl. This field should be used carefully; please speak to a deploy-tools admin before use

type

array

default

items

type

string

ModuleDependency#

Specify an Environment Module to include as a dependency.

If the dependent Environment Module is managed by this same Deployment (i.e. is a Module), you must specify a specific version in order to pass validation.

type

object

properties

  • name

Name

Name of module dependency

type

string

  • version

Version

Version of dependency. Will use default if none specified, but this is only valid for modules not managed using deploy-tools

default

null

anyOf

type

string

type

null

MountPoint#

type

string

ShellApp#

Represents a Shell application.

This will run the code specified as a shell script. This currently uses Bash for improved functionality while retaining high compatibility with various Linux distributions.

type

object

properties

  • app_type

App Type

A shell application with the given script

type

string

const

shell

  • name

Name

Name of executable to use after loading the Module. Must start with a letter or underscore and contain only letters, digits, hyphens or underscores.

type

string

  • script

Script

Script to be run

type

array

default

items

type

string