Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ansible-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,4 @@ jobs:
# path to directories or files to skip. This option is
# repeatable.
# -c C Specify configuration file to use. Defaults to ".ansible-lint"
args: ""
args: "--exclude=.github"
2 changes: 1 addition & 1 deletion .github/workflows/test-playbooks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
fail-fast: false
matrix:
component: [stratum0, stratum1, localproxy, client]
# Had to drop centos-7 from the matrix due to a dbus issue with the docker run command
# Had to drop centos-7 from the matrix due to a dbus issue with the docker run command
os: [rockylinux-8, ubuntu-20.04, ubuntu-22.04]
steps:
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0
Expand Down
6 changes: 3 additions & 3 deletions roles/create_cvmfs_content_structure/tasks/do_repo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
path: "/cvmfs/{{ cvmfs_repo }}/{{ item.name }}"
state: directory
mode: "{{ item.mode }}"
with_items: "{{ directories }}"
loop: "{{ directories | flatten }}"
register: create_cvmfs_content_structure_create_directories

- name: "Create symlinks"
Expand All @@ -26,15 +26,15 @@
src: "{{ symlinks[item] }}"
state: link
force: true
with_items: "{{ symlinks }}"
loop: "{{ symlinks | flatten }}"
register: create_cvmfs_content_structure_create_symlinks

- name: "Copy files"
ansible.builtin.copy:
src: "{{ item.name }}"
dest: "/cvmfs/{{ cvmfs_repo }}/{{ item.dest }}"
mode: "{{ item.mode }}"
with_items: "{{ files }}"
loop: "{{ files | flatten }}"
register: create_cvmfs_content_structure_create_files

- name: Publish transaction
Expand Down
25 changes: 25 additions & 0 deletions roles/create_cvmfs_content_structure/vars/software.eessi.io.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,22 @@
# Paths for files and symlinks should be relative to the root of the repository.
---
directories: # noqa: var-naming[no-role-prefix]
- name: defaults
mode: '755'

- name: init/modules/EESSI
mode: '755'

# These should exist, but we mainly list them here to prevent failures in CI (where the test repo is empty)
- name: versions/2025.06/compat/linux/aarch64/lib
mode: '775'

- name: versions/2025.06/compat/linux/riscv64/lib
mode: '775'

- name: versions/2025.06/compat/linux/x86_64/lib
mode: '775'

files: # noqa: var-naming[no-role-prefix]
- name: .cvmfsdirtab
dest: ''
Expand All @@ -19,6 +32,18 @@ files: # noqa: var-naming[no-role-prefix]
mode: '644'

symlinks: # noqa: var-naming[no-role-prefix]
# defaults/amd: '$(EESSI_AMD_OVERRIDE_DEFAULT:-/dev/null)'
defaults/nvidia: '$(EESSI_NVIDIA_OVERRIDE_DEFAULT:-/dev/null)'
defaults/override: '$(EESSI_LIB_OVERRIDE_DEFAULT:-/dev/null)'
host_injections: '$(EESSI_HOST_INJECTIONS:-/opt/eessi)'
Copy link
Member

@ocaisa ocaisa Feb 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not to muddy things too much here, but I wonder if this too should also be pointing to /dev/null by default? It is a bit of a security hole as you can inject into MPI binaries via locations in there and this is not explicitly obvious (the default doesn't appear in your local configuration so you would need to actively know that you should be monitoring that).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Granted, for it to be a problem you have to manually create /opt/eessi and lose control of that directory, but if you did that, there's no real record in your CVMFS setup about that.

Copy link
Contributor

@casparvl casparvl Feb 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue I see here is that it would actively break installations that have relied on the default value so far. Also, this is only an issue for EESSI 2023.06, not for 2025.06 and newer: the latter only search the following paths:

Shared library search path:
  (libraries located via /cvmfs/software.eessi.io/versions/2025.06/compat/linux/x86_64/etc/ld.so.cache)
  /cvmfs/software.eessi.io/versions/2025.06/compat/linux/x86_64/lib64 (system search path)
  /cvmfs/software.eessi.io/versions/2025.06/compat/linux/x86_64/usr/lib64 (system search path)
  /cvmfs/software.eessi.io/versions/2025.06/compat/linux/x86_64/lib/override (system search path)
  /cvmfs/software.eessi.io/versions/2025.06/compat/linux/x86_64/lib/nvidia (system search path)
  /cvmfs/software.eessi.io/versions/2025.06/compat/linux/x86_64/lib/amd (system search path)

The only thing that's still used from the original host_injections is

/cvmfs/software.eessi.io/versions/2025.06/software/linux/x86_64/amd/zen2/.lmod/SitePackage.lua

which is including local SitePackage.lua's. I'm not saying that's harmless, and not saying there's no good reason to change that default, but:

  1. I wouldn't do it in this PR (it could hold this PR - which is a requirement for CUDA support in 2025.06 - back)
  2. I would accompany it with a fair amount of effort to inform sites that may rely on this default. I'm thinking: clear and explicit change in the documentation on how host_injections behaves, and how that changes in the future. Also: broadcast on Slack. Also: see point (4).
  3. Maybe we should even allow for a transition period, to allow sites to explicitely set a non-default host_injections in their CVMFS config before we push this change.
  4. We COULD consider trying to (ab)use SitePackage.lua to warn people about the incoming change. E.g. you could check
    a) is their host_injections resolving to /opt/eessi
    b) do they have anything (any files/dirs) in that subdirectory
    And if A & B are both true, print a warning with every module command being run to inform the site that per date XYZ they will have to set the variant symlink explicitely. One downside is: it's not easy to check if host_injections resolves to /opt/eessi because that's the default or because the site set that explicitely in their CVMFS config... a cvmfs_config showconfig software.eessi.io does not show values for variant symlinks - even if they are explicitely set in the config - so we cannot easily see where the value comes from.

init/modules/EESSI/2023.06.lua: /cvmfs/software.eessi.io/versions/2023.06/init/modules/EESSI/2023.06.lua
init/modules/EESSI/2025.06.lua: /cvmfs/software.eessi.io/versions/2025.06/init/modules/EESSI/2025.06.lua
# versions/2025.06/compat/linux/aarch64/lib/amd: '$(EESSI_202506_AMD_OVERRIDE:-/cvmfs/software.eessi.io/defaults/amd)'
# versions/2025.06/compat/linux/riscv64/lib/amd: '$(EESSI_202506_AMD_OVERRIDE:-/cvmfs/software.eessi.io/defaults/amd)'
# versions/2025.06/compat/linux/x86_64/lib/amd: '$(EESSI_202506_AMD_OVERRIDE:-/cvmfs/software.eessi.io/defaults/amd)'
versions/2025.06/compat/linux/aarch64/lib/nvidia: '$(EESSI_202506_NVIDIA_OVERRIDE:-/cvmfs/software.eessi.io/defaults/nvidia)'
versions/2025.06/compat/linux/riscv64/lib/nvidia: '$(EESSI_202506_NVIDIA_OVERRIDE:-/cvmfs/software.eessi.io/defaults/nvidia)'
versions/2025.06/compat/linux/x86_64/lib/nvidia: '$(EESSI_202506_NVIDIA_OVERRIDE:-/cvmfs/software.eessi.io/defaults/nvidia)'
versions/2025.06/compat/linux/aarch64/lib/override: '$(EESSI_202506_LIB_OVERRIDE:-/cvmfs/software.eessi.io/defaults/override)'
versions/2025.06/compat/linux/riscv64/lib/override: '$(EESSI_202506_LIB_OVERRIDE:-/cvmfs/software.eessi.io/defaults/override)'
versions/2025.06/compat/linux/x86_64/lib/override: '$(EESSI_202506_LIB_OVERRIDE:-/cvmfs/software.eessi.io/defaults/override)'
Loading