diff --git a/CHANGELOG.md b/CHANGELOG.md index 9510bdb9..032a9e2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,22 +4,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -## [Unreleased] +## [1.7.0] ### Added +- Added the `sarus ps` command to list running containers. More details [here](https://sarus.readthedocs.io/en/stable/user/user_guide.html#listing-running-containers). +- Added the `sarus kill` command to terminate (and subsequently remove) containers. +- Added the `-n, --name` option the `sarus run` command to specify the name of the container to run. If the option is not specified, Sarus assigns a default name in the form `sarus-container-*`. More details [here](https://sarus.readthedocs.io/en/stable/user/user_guide.html#naming-the-container) - MPI hook: added support for the environment variable `MPI_COMPATIBILITY_TYPE` that defines the behaviour of the compatibility check of the libraries that the hook mounts. Valid values are `major`, `full` and `strict`. Default value is `major`. -- MPI hook: added support for the `HOOK_ROOTLESS` environment variable, which enables to use the hook under rootless container runtimes -- SSH Hook: added a poststop functionality that kills the Dropbear process in case the hook does not join the container's PID namespace. -- Added the `sarus ps` command to list running containers -- Added the `sarus kill` command to terminate (and subsequently remove) containers -- Added the `-n, --name` option the `sarus run` command to specify the name of the container to run. If the option is not specified, Sarus assigns a default name in the form `sarus-container-*`. + More details [here](https://sarus.readthedocs.io/en/stable/config/mpi-hook.html#hook-configuration). +- MPI hook: added support for the `HOOK_ROOTLESS` environment variable, enabling the hook to be used in rootless container runtimes. More details [here](https://sarus.readthedocs.io/en/stable/config/mpi-hook.html#hook-configuration). +- SSH Hook: added a poststop functionality that kills the Dropbear process in case the hook does not join the container's PID namespace. More details [here](https://sarus.readthedocs.io/en/stable/config/ssh-hook.html#hook-configuration). ### Changed -- Configuration templates and documentation for OCI hooks now use createRuntime, createContainer or startContainer execution stages, instead of the prestart stage which has been deprecated since version 1.0.2 of the OCI Runtime specification. The only exception is the NVIDIA container toolkit hook. -- Updated the build environment of the Sarus static standalone package to Alpine Linux 3.20 with a GCC 13.2.1 toolchain +- Configuration templates and documentation for OCI hooks now use the `createRuntime`, `createContainer`, or `startContainer` execution stages instead of the `prestart` stage, which has been deprecated since version 1.0.2 of the OCI Runtime specification. The only exception is the NVIDIA Container Toolkit hook. +- Updated the build environment of the Sarus static standalone package to Alpine Linux 3.20 with a GCC 13.2.1 toolchain. - Updated recommended runc version to 1.1.14 - Updated recommended Boost version to 1.85.0 - Updated recommended RapidJSON version to commit ab1842a2da diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index dfc1ac7c..30fb5d44 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -6,6 +6,7 @@ - Chesi, Matteo. ETH Zurich - CSCS - Cruz, Felipe. ETH Zurich - CSCS - Fink, Andreas. ETH Zurich - CSCS +- Lee, Gwangmu. ETH Zurich - CSCS - Hooks, Timothy Dayne - Madonna, Alberto. ETH Zurich - CSCS - Manitaras, Theofilos. ETH Zurich - CSCS diff --git a/doc/config/configuration_reference.rst b/doc/config/configuration_reference.rst index be5bcb62..21ff3bb6 100644 --- a/doc/config/configuration_reference.rst +++ b/doc/config/configuration_reference.rst @@ -447,8 +447,8 @@ Example configuration file "securityChecks": true, "OCIBundleDir": "/var/sarus/OCIBundleDir", "rootfsFolder": "rootfs", - "prefixDir": "/opt/sarus/1.6.4", - "hooksDir": "/opt/sarus/1.6.4/etc/hooks.d", + "prefixDir": "/opt/sarus/1.7.0", + "hooksDir": "/opt/sarus/1.7.0/etc/hooks.d", "tempDir": "/tmp", "localRepositoryBaseDir": "/home", "centralizedRepositoryDir": "/var/sarus/centralized_repository", @@ -497,15 +497,15 @@ Example configuration file "/opt" ] }, - "seccompProfile": "/opt/sarus/1.6.4/etc/seccomp/default.json", + "seccompProfile": "/opt/sarus/1.7.0/etc/seccomp/default.json", "apparmorProfile": "sarus-default", "selinuxLabel": "system_u:system_r:svirt_sarus_t:s0:c124,c675", "selinuxMountLabel": "system_u:object_r:svirt_sarus_file_t:s0:c715,c811" "containersPolicy": { - "path": "/opt/sarus/1.6.4/etc/policy.json", + "path": "/opt/sarus/1.7.0/etc/policy.json", "enforce": false }, - "containersRegistries.dPath": "/opt/sarus/1.6.4/etc/registries.d" + "containersRegistries.dPath": "/opt/sarus/1.7.0/etc/registries.d" "defaultMPIType": "mpich", "repositoryMetadataLockTimings": { "timeoutMs": 120000, diff --git a/doc/config/ssh-hook.rst b/doc/config/ssh-hook.rst index 5c1f828d..63245eb3 100644 --- a/doc/config/ssh-hook.rst +++ b/doc/config/ssh-hook.rst @@ -28,7 +28,7 @@ Hook configuration The SSH hook must be configured to run as a **createRuntime** and as a **poststop** hook. In the prestart stage the hook sets up the container to accept connections and starts the Dropbear SSH daemon. In the poststop stage, cleanup of the SSH daemon process takes place. -One OCI hook JSON configuration files is sufficient, provided it defines ``"stages": ["prestart", "poststop"]``. +One OCI hook JSON configuration file is sufficient, provided it defines ``"stages": ["createRuntime", "poststop"]``. The hook expects to receive its own name/location as the first argument, and the string ``start-ssh-daemon`` as positional argument. In addition, the following @@ -93,8 +93,8 @@ enabling the SSH hook: .. literalinclude:: /config/hook_examples/07-ssh-hook.json :language: json -The poststop functionality is especially valuable in cases where the hook does not actively join the PID namespace -of the container. In its absence, the termination of the container would not result in the termination of the +The poststop functionality is especially valuable in cases where the container does not have a private PID namespace. +In the absence of poststop actions, the termination of the container would not result in the termination of the Dropbear daemon, leading to the persistence of the daemon even after the container has been stopped. This persistence can cause issues like port conflicts, as the daemon may still be listening on a port that is required by a new container attempting to start. diff --git a/spack/packages/sarus/package.py b/spack/packages/sarus/package.py index 961505ba..25ec559f 100644 --- a/spack/packages/sarus/package.py +++ b/spack/packages/sarus/package.py @@ -30,12 +30,13 @@ class Sarus(CMakePackage): """Sarus is an OCI-compliant container engine for HPC systems.""" homepage = "https://github.com/eth-cscs/sarus" - url = "https://github.com/eth-cscs/sarus/archive/1.6.4.tar.gz" + url = "https://github.com/eth-cscs/sarus/archive/1.7.0.tar.gz" git = "https://github.com/eth-cscs/sarus.git" version('develop', branch='develop', submodules=True) version('master', branch='master', submodules=True) - version("1.6.4", tag="1.6.4", submodules=True) + version("1.7.0", tag="1.7.0", submodules=True) + version("1.6.4", commit="bb4aadb02aaeb8b6442ab81ee8b39d3088f8c912") version("1.6.3", commit="169ea2149a26a21fe73683be0eb0a31fb3806671") version("1.6.2", commit="4af913f4d65679f78e5bb7f2c006d8cff8d24b1d") version("1.6.1", commit="089b3284473f82a08d3541d133f7cd65df92a6e4")