Skip to content

Adding non-standard ways to use EESSI#387

Open
hvelab wants to merge 25 commits intoEESSI:mainfrom
hvelab:issue_119
Open

Adding non-standard ways to use EESSI#387
hvelab wants to merge 25 commits intoEESSI:mainfrom
hvelab:issue_119

Conversation

@hvelab
Copy link
Copy Markdown
Collaborator

@hvelab hvelab commented Feb 20, 2025

As per this issue: https://gitlab.com/eessi/support/-/issues/119

First batch regarding the cvmfsexec usage. A couple of thoughts:

  • Should we add the cvmfsexec_eessi.sh and the orted wrapper in some repo so people can directly clone and not have to copy-paste it?
  • Worked fine in my local Ubuntu 22.04 and a remote Rocky Linux test environment,. For some colleagues I asked to test in their locals (Ubuntu 23), this error msg occured:
 $ ./test.sh ls /cvmfs/software.essi.io
/tmp/rzarco/tmp.sdsrKCrQH7/cvmfsexec/dist should be rpm2cpio of cvmfs rpm
mountrepo software.eessi.io failed

so seems only works for RHEL :/

@ocaisa
Copy link
Copy Markdown
Member

ocaisa commented Feb 21, 2025

cvmfsexec only works for RHEL-like systems 😢

@hvelab
Copy link
Copy Markdown
Collaborator Author

hvelab commented Feb 24, 2025

cvmfsexec only works for RHEL-like systems 😢

True, in my Ubuntu works but seems that its because I have CVMFS already available, I tested it in other systems without CVMFS and the same error message shows :(

clarirfication for cvmfsexec

## Via `squashfs` + cvmfs's `shrinkwrap` utility

CernVM-FS provides the Shrinkwrap utility, allowing users to create a portable snapshot of a CVMFS repository. This can be exported and distributed without the need of a CVMFS client or network access.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Should link to the CVMFS docs on this early on.

hvelab and others added 4 commits March 20, 2025 10:01
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
Co-authored-by: ocaisa <alan.ocais@cecam.org>
@ocaisa
Copy link
Copy Markdown
Member

ocaisa commented May 21, 2025

cvmfs-2.13.0 was released a few minutes ago, so the approach with shrinkwrap should work out-of-the-box if you have that version available. This also means I can start working on a script to manage this once our client containers are updated

!/versions/2023.06/compat/linux/x86_64/var/cache

```

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think the spec file requires extra explanation. E.g. we should probably state that the compat layer is always needed, as is the dir that allows initializing the environment. Then, we should probably give some examples: e.g. how to export the full x86_64 tree (with the warning that it requires a massive amount of memory due to a known issue, see https://gitlab.com/eessi/support/-/issues/118), how to export for a single (or a handful) of micro-architectures, and maybe even an approach how to export for a single piece of software (i.e. load the GROMACS module, check all EBROOT variables, and export those - that should be enough...)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

added new info, how do you see it now?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

ping to check

hvelab and others added 7 commits November 14, 2025 09:34
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>

```bash
/versions/2023.06/compat/linux/x86_64/*
/versions/2023.06/init/*
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

/init/*

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

what am I not seeing? D:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

There is another folder /init alongside /versions

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Yes, at the root of the software.eessi.io repo there is an(other) /init/* directory which contains the EESSI modules. The instructions for initializing the EESSI environment actually require these: you either add this dir to MODULEPATH and load the modules (if you already have a module command on your system), or you source the /versions/2023.06/init/lmod/<shell> script - which then sets the MODULEPATH and loads the mdoule.

I.e. your instructions seem to be originally made for the 'old' method of sourcing /versions/2023.06/init/bash, but that approach deprecated since we wanted to stop trying to keep two init methods in sync (the module, and that bash script).


```bash
mksquashfs /tmp/cvmfs software.eessi.io.sqsh
# And if you squashed the compat layer separately:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It actually sounds quite nice to have a separate squashfs for the compat layer. I never tried it, but: how would I then mount both? Does a straightforward

apptainer shell -B software.eessi.io.sqsh:/cvmfs:image-src=/ -B software.eessi.io_compat.sqsh:/cvmfs:image-src=/ docker://ubuntu

work? It seems weird to me that you'd mount two different squasfs filesystems to the same mountpoint - how would it know how to integrate them if there are overlapping files/directory names?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

it definetly collides:

hvela@ThinkPad-hvela:~/HPCNow/EESSI/tests$ apptainer shell -B software.eessi.io.sqsh:/cvmfs:image-src=/ -B software.eessi.io_compat.sqsh:/cvmfs:image-src=/ docker://ubuntu
INFO:    Using cached SIF image
INFO:    Cleanup error: while unmounting /var/lib/apptainer/mnt/session/data-images/1 directory: no such file or directory, while unmounting /var/lib/apptainer/mnt/session/data-images/0 directory: no such file or directory, while unmounting /var/lib/apptainer/mnt/session/final directory: no such file or directory, while unmounting /var/lib/apptainer/mnt/session/rootfs directory: no such file or directory
FATAL:   container creation failed: while adding data bind /var/lib/apptainer/mnt/session/data-images/1 -> /cvmfs: destination is already in the mount point list

But changing the mount points seems fine:

hvela@ThinkPad-hvela:~/HPCNow/EESSI/tests$ apptainer shell   -B software.eessi.io.sqsh:/cvmfs/software.eessi.io:image-src=/   -B software.eessi.io_compat.sqsh:/cvmfs/versions/2023.06/compat:image-src=/   docker://ubuntu
INFO:    Using cached SIF image
Apptainer> ls /cvmfs/
software.eessi.io  versions

The contents of the directory seem a bit odd to me... But that's because the content of the spec file is:

hvela@ThinkPad-hvela:~/HPCNow/EESSI/tests$ cat software.eessi.io_compat.spec
/versions/2023.06/compat/linux/x86_64/*
# Exclude the Gentoo ebuild repo and cache files
!/versions/2023.06/compat/linux/x86_64/var/db/repos/gentoo
!/versions/2023.06/compat/linux/x86_64/var/cach

Doubting if this is the best approach now

Copy link
Copy Markdown
Collaborator

@casparvl casparvl left a comment

Choose a reason for hiding this comment

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

See comments :)

@boegel
Copy link
Copy Markdown
Contributor

boegel commented Jan 13, 2026

@hvelab Can you look into the last review, so we can get this across the finish line?

hvelab and others added 3 commits January 29, 2026 11:56
Co-authored-by: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com>
Remove excessive blank lines from non_standard.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants