deploy_tools.models.apptainer_app#

Members

ApptainerApp

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

ContainerImage

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

Entrypoint

Represents an entrypoint to a command on the Apptainer image.

EntrypointOptions

Options applied when running an Apptainer entrypoint.

class deploy_tools.models.apptainer_app.EntrypointOptions(*, apptainer_args: str = '', command_args: str = '', mounts: list[MountPoint] = [], host_binaries: list[str] = [])[source]#

Options applied when running an Apptainer entrypoint.

class deploy_tools.models.apptainer_app.Entrypoint(*, name: ~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[a-zA-Z_][0-9a-zA-Z_-]*$, ascii_only=None)], command: str | None = None, options: ~deploy_tools.models.apptainer_app.EntrypointOptions = EntrypointOptions(apptainer_args='', command_args='', mounts=[], host_binaries=[]))[source]#

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.

class deploy_tools.models.apptainer_app.ContainerImage(*, path: ~typing.Annotated[~pydantic.networks.AnyUrl, ~pydantic.networks.UrlConstraints(max_length=None, allowed_schemes=['docker', 'shub', 'oras', 'https'], host_required=None, default_host=None, default_port=None, default_path=None, preserve_empty_path=None)], version: ~typing.Annotated[str, ~pydantic.types.StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern=^[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127}$, ascii_only=None)])[source]#

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

property url: str#

Full image reference combining the path and version as path:version.

class deploy_tools.models.apptainer_app.ApptainerApp(*, app_type: Literal['apptainer'], container: ContainerImage, entrypoints: list[Entrypoint], global_options: EntrypointOptions = EntrypointOptions(apptainer_args='', command_args='', mounts=[], host_binaries=[]))[source]#

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.