From b7b53c8075310535a908a55b735063835e9f26a6 Mon Sep 17 00:00:00 2001 From: Adrian Reber Date: Sun, 1 Nov 2026 18:40:07 +0000 Subject: [PATCH] docs/blog: add post on EESSI in OpenHPC 4.2 OpenHPC 4.2 ships an optional EESSI section in its install guide. It installs the CernVM-FS client on the head node and in the compute image, makes software.eessi.io available, and adds a module that exposes the EESSI software stack through the usual module commands. The post covers what the section does, the constraints that come with it (Lmod is required, and a local Squid proxy is recommended in production), and the longer-standing connection between OpenHPC and the EasyBuild community that it grew out of. Also add an .authors.yml entry for the author. --- docs/blog/.authors.yml | 7 +- .../posts/2026/11/eessi-in-openhpc-4.2.md | 118 ++++++++++++++++++ docs/blog/posts/2026/11/ohpc_logo.png | Bin 0 -> 31496 bytes 3 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 docs/blog/posts/2026/11/eessi-in-openhpc-4.2.md create mode 100644 docs/blog/posts/2026/11/ohpc_logo.png diff --git a/docs/blog/.authors.yml b/docs/blog/.authors.yml index 99ca665b91..55b09ad45b 100644 --- a/docs/blog/.authors.yml +++ b/docs/blog/.authors.yml @@ -139,5 +139,8 @@ authors: description: MattX avatar: https://avatars.githubusercontent.com/u/574106 slug: https://github.com/krisbuytaert - - + adrianreber: + name: Adrian Reber + description: Amutable + avatar: https://avatars.githubusercontent.com/u/8724298?v=4 + slug: https://github.com/adrianreber diff --git a/docs/blog/posts/2026/11/eessi-in-openhpc-4.2.md b/docs/blog/posts/2026/11/eessi-in-openhpc-4.2.md new file mode 100644 index 0000000000..b0ee7d2b29 --- /dev/null +++ b/docs/blog/posts/2026/11/eessi-in-openhpc-4.2.md @@ -0,0 +1,118 @@ +--- +authors: [adrianreber] +date: 2026-11-01 +slug: eessi-in-openhpc-4.2 +--- + +# EESSI in OpenHPC 4.2 + +
+![OpenHPC](ohpc_logo.png){width=50%} +
+ +[OpenHPC](https://openhpc.community/) 4.2 was +[released on 1 November 2026](https://openhpc.community/news/2026/openhpc-v4-2-release-additional-provisioners-resource-managers-and-module-systems/). +Among the new material in the install guide is an optional section that sets up +[EESSI](../../../../index.md) on the cluster being built: the CernVM-FS client +on the head node and in the compute image, the `software.eessi.io` repository, +and a module that makes the EESSI software stack available through the usual +`module` commands. + + + +## A long-standing connection + +OpenHPC and the EasyBuild community have been in contact for a long time. +EasyBuild has been packaged in OpenHPC since late 2016 and is still part of +OpenHPC 4.2, alongside Spack, for sites that prefer to build their own +software. EESSI, in turn, grew out of that same community: its +[software layer](../../../../software_layer.md) is built with EasyBuild, and +the installations are exposed through Lmod. + +The integration of EESSI in OpenHPC 4.2 is therefore not a first encounter +between two unrelated projects, but an existing connection becoming visible in +the install guide, where site administrators are likely to come across it. + +It followed from several conversations over the past few years about bringing +the two projects closer together. While working on OpenHPC 4.2 I returned to +the idea, and integrating EESSI proved easier than expected. The section was +written on the OpenHPC side and reviewed by the EESSI project. + +## What it does + +Administrators who want EESSI on their cluster can enable the section when +preparing the installation. The recipe then installs the CernVM-FS client and +the EESSI configuration on the head node and in the compute image, and adds an +`eessi` module to the OpenHPC module hierarchy. From that point on, the +standard EESSI workflow applies: + +```console +[test@sms ~]$ module load eessi +[test@sms ~]$ module avail EESSI + +-------------------- /cvmfs/software.eessi.io/init/modules --------------------- + EESSI/2023.06 (D) EESSI/2025.06 EESSI/2026.06 + + Where: + D: Default Module + +[test@sms ~]$ module load EESSI/2026.06 +[test@sms ~]$ module avail +``` + +The final `module avail` deserves attention. A freshly installed OpenHPC +cluster already provides a substantial set of packages, but EESSI adds +[more than 900 software projects](../../../../available_software/index.md) on +top of it, built for the CPU architecture of the node on which the job runs, +none of which has to be compiled at the site. For a cluster being set up today, +this removes a considerable amount of work before users can start. + +The EESSI section is part of the recipe templates like every other section, and +the test matrix includes configurations with `enable_eessi` set, so it is +covered by the same integration testing as the rest of the guide. OpenHPC 4.2 +was validated with 172,794 tests over 306 hours. + +## Points to consider before enabling it + +Two points are worth highlighting before enabling the section: + +- **The integration as implemented in OpenHPC 4.2 relies on Lmod.** EESSI + ships its initialization modules as Lua modulefiles, which only Lmod reads. + OpenHPC 4.2 also offers Environment Modules 5.7 as an alternative module + system, but with that selected the repository still mounts and its files + remain usable directly, while the EESSI modules cannot be loaded by + Environment Modules. EESSI itself does ship Lmod, so it remains possible to + [initialise and use EESSI as per the standard usage instructions](../../../../using_eessi/setting_up_environment.md); + without additional configuration, however, this would clobber the + Environment Modules environment. Explicit support for Environment Modules is + so far a + [proposal](https://modules.readthedocs.io/en/latest/design/eessi.html) in the + Environment Modules documentation rather than something EESSI currently + provides. +- **A proxy is recommended in production.** The recipe configures clients with + `CVMFS_USE_CDN=yes`, so that content is fetched through a CDN rather than + directly from the EESSI mirror servers. This is adequate for a test cluster + and keeps the load on those servers low, but a production cluster should run + a local Squid proxy and point the clients at it with `CVMFS_HTTP_PROXY`. See + the EESSI documentation on + [native installation on clusters](../../../../getting_access/native_installation.md#native-install-on-clusters). + +## Reading the section + +OpenHPC 4.2 includes a +[Recipe Explorer](https://openhpc.github.io/ohpc/4.2/explorer/): after +selecting a base OS, architecture, provisioner and resource manager, and +enabling the optional features, it renders the corresponding install guide +together with a `recipe.sh` and an `input.local`. The EESSI section for an +AlmaLinux 10 / x86_64 / Warewulf / Slurm cluster is available +[here](https://openhpc.github.io/ohpc/4.2/explorer/#almalinux10-x86_64-warewulf-slurm?chapter=eessi); +for a different combination, enable EESSI in the options on the left and the +section appears in the table of contents. + +## Questions + +Questions about OpenHPC itself are best raised on the +[OpenHPC](https://github.com/openhpc/ohpc) issue tracker. Questions about EESSI, +such as missing software or problems with the CernVM-FS repository, should be +directed to the EESSI project through the channels listed on the +[support page](../../../../support.md). diff --git a/docs/blog/posts/2026/11/ohpc_logo.png b/docs/blog/posts/2026/11/ohpc_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..989dff3818589f9f356a5efda8ca215825970761 GIT binary patch literal 31496 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 literal 0 HcmV?d00001