Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
8e78694
Branch to build stack for nessi.uiocloud.no
poksumdo Jun 30, 2022
a97af5b
Changed connection mode
poksumdo Jun 30, 2022
11563e2
DIRECT is the correct value
poksumdo Jun 30, 2022
272f896
Updated easystack file
poksumdo Jun 30, 2022
90c61c1
Disabled easystack file check
poksumdo Jun 30, 2022
2e9874a
Added a bit more debug output
poksumdo Jun 30, 2022
e66f8d1
Moved determination of software subdir into create_tarball.sh
poksumdo Jun 30, 2022
fb74340
Removed one parameter from create_tarball.sh
poksumdo Jun 30, 2022
443ec75
Removed additional 'then'
poksumdo Jun 30, 2022
88c6eb7
Added setting of pilot_version
poksumdo Jun 30, 2022
d8db57a
Convert '/' to '_' in tgz filename
poksumdo Jun 30, 2022
daaaf66
Separate between software subdir use (dir or tgz)
poksumdo Jun 30, 2022
1c1efec
Add GCC 9.3.0 to repo
poksumdo Jun 30, 2022
61ab4ff
artificial change to trigger event
poksumdo Aug 3, 2022
93828b8
fake change to trigger new pull_request create event
poksumdo Aug 3, 2022
f37ba72
added missing exclamation mark in success message
poksumdo Aug 3, 2022
7daf78b
Addding CaDiCaL 1.3.0 to pilot.nessi
poksumdo Aug 11, 2022
fe15d07
PR for building Java 11.0.2 for generic arch
poksumdo Aug 17, 2022
8415e2e
Added customized startprefix for retaining EASYBUILD_OPTARCH
poksumdo Aug 17, 2022
0ce75aa
Revert "Added customized startprefix for retaining EASYBUILD_OPTARCH"
poksumdo Aug 17, 2022
8e3eca6
Adding handling of arguments
poksumdo Aug 17, 2022
fa78dae
Making create_tarball.sh aware of --generic
poksumdo Aug 17, 2022
e528056
Adding more debug output for software override
poksumdo Aug 17, 2022
67c154b
Export override variable
poksumdo Aug 17, 2022
ffc6d9e
Removing OS_TYPE from orverride variable
poksumdo Aug 17, 2022
9726a3f
Put comparison operands in double quotes
poksumdo Aug 17, 2022
e858cfb
Fixing bug in comparison: -le vs -lt
poksumdo Aug 17, 2022
57d6587
Polished code
poksumdo Aug 17, 2022
8f9a8c1
Removed debugging output
poksumdo Aug 17, 2022
0af6437
Adding a bit more debug output
poksumdo Aug 23, 2022
5dce8d4
More debug output (http*)
poksumdo Aug 23, 2022
b4f78b4
More command line arguments
poksumdo Aug 23, 2022
6af6fb1
Added a bit more debug output
poksumdo Aug 23, 2022
d04bf15
Improved command line parsing
poksumdo Aug 23, 2022
602cef6
Adding more debug output
poksumdo Aug 23, 2022
beeb927
Attempt to fix patch issue with trz42/PR11
truib Aug 31, 2022
6090cfe
Improved handling of command line parameters
truib Aug 26, 2022
4242150
Fixed order of scripts to set up env vars
truib Aug 27, 2022
4bd3af7
Removed --http(s)-proxy parameters
poksumdo Sep 2, 2022
527a3bf
Create $EB_TMPDIR explicitly
truib Sep 6, 2022
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
381 changes: 222 additions & 159 deletions EESSI-pilot-install-software.sh

Large diffs are not rendered by default.

12 changes: 4 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,15 @@ See also https://eessi.github.io/docs/software_layer.

## Pilot software stack

A script that sets up your environment to start using the 2020.08 version of the EESSI pilot software stack
is available at `EESSI-pilot-2020.08_init.sh`.

This script should be copied to `/cvmfs/pilot.eessi-hpc.org/2020.08/init/bash` if it is not available there already,
and sourced to set up your environment:
You can set up your environment by sourcing the init script:

```
$ source /cvmfs/pilot.eessi-hpc.org/2020.08/init/bash
Found EESSI pilot repo @ /cvmfs/pilot.eessi-hpc.org/2020.08!
$ source /cvmfs/pilot.nessi.uiocloud.no/versions/2021.12/init/bash
Found EESSI pilot repo @ /cvmfs/pilot.nessi.uiocloud.no/2021.12!
Derived subdirectory for software layer: x86_64/intel/haswell
Using x86_64/intel/haswell subdirectory for software layer (HARDCODED)
Initializing Lmod...
Prepending /cvmfs/pilot.eessi-hpc.org/2020.08/software/x86_64/intel/haswell/modules/all to $MODULEPATH...
Prepending /cvmfs/pilot.nessi.uiocloud.no/versions/2021.12/software/x86_64/intel/haswell/modules/all to $MODULEPATH...
Environment set up to use EESSI pilot software stack, have fun!
[EESSI pilot 2020.08] $
```
Expand Down
10 changes: 6 additions & 4 deletions build_container.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#!/bin/bash

env | grep -i EASYBUILD_OPTARCH | sed -e 's/^/build_container.sh:/'

BUILD_CONTAINER="docker://ghcr.io/eessi/build-node:debian10"

if [ $# -lt 2 ]; then
Expand All @@ -26,7 +28,7 @@ if [ $? -eq 0 ]; then
attr -s test -V test $testfile > /dev/null
if [ $? -ne 0 ]; then
echo "ERROR: $EESSI_TMPDIR does not support extended attributes!" >&2
exit 2
#exit 2
else
rm $testfile
fi
Expand All @@ -43,7 +45,7 @@ mkdir -p $EESSI_TMPDIR/{var-lib-cvmfs,var-run-cvmfs}
export SINGULARITY_CACHEDIR=$EESSI_TMPDIR/singularity_cache

# take into account that $SINGULARITY_BIND may be defined already, to bind additional paths into the build container
BIND_PATHS="$EESSI_TMPDIR/var-run-cvmfs:/var/run/cvmfs,$EESSI_TMPDIR/var-lib-cvmfs:/var/lib/cvmfs,$EESSI_TMPDIR"
BIND_PATHS="$EESSI_TMPDIR/var-run-cvmfs:/var/run/cvmfs,$EESSI_TMPDIR/var-lib-cvmfs:/var/lib/cvmfs,$EESSI_TMPDIR,nessi.uiocloud.no:/etc/cvmfs/keys/nessi.uiocloud.no,nessi.uiocloud.no.conf:/etc/cvmfs/domain.d/nessi.uiocloud.no.conf,default.local:/etc/cvmfs/default.local"
if [ -z $SINGULARITY_BIND ]; then
export SINGULARITY_BIND="$BIND_PATHS"
else
Expand All @@ -56,8 +58,8 @@ if [ -z $SINGULARITY_HOME ]; then
fi

# set environment variables for fuse mounts in Singularity container
export EESSI_PILOT_READONLY="container:cvmfs2 pilot.eessi-hpc.org /cvmfs_ro/pilot.eessi-hpc.org"
export EESSI_PILOT_WRITABLE_OVERLAY="container:fuse-overlayfs -o lowerdir=/cvmfs_ro/pilot.eessi-hpc.org -o upperdir=$EESSI_TMPDIR/overlay-upper -o workdir=$EESSI_TMPDIR/overlay-work /cvmfs/pilot.eessi-hpc.org"
export EESSI_PILOT_READONLY="container:cvmfs2 pilot.nessi.uiocloud.no /cvmfs_ro/pilot.nessi.uiocloud.no"
export EESSI_PILOT_WRITABLE_OVERLAY="container:fuse-overlayfs -o lowerdir=/cvmfs_ro/pilot.nessi.uiocloud.no -o upperdir=$EESSI_TMPDIR/overlay-upper -o workdir=$EESSI_TMPDIR/overlay-work /cvmfs/pilot.nessi.uiocloud.no"

if [ "$SHELL_OR_RUN" == "shell" ]; then
# start shell in Singularity container, with EESSI repository mounted with writable overlay
Expand Down
2 changes: 1 addition & 1 deletion create_init_tarball.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

SOFTWARE_LAYER_TARBALL_URL=https://github.com/EESSI/software-layer/tarball/main
SOFTWARE_LAYER_TARBALL_URL=https://github.com/trz42/software-layer/tarball/main

set -eo pipefail

Expand Down
78 changes: 72 additions & 6 deletions create_tarball.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,86 @@

set -e

if [ $# -ne 4 ]; then
echo "ERROR: Usage: $0 <EESSI tmp dir (example: /tmp/$USER/EESSI)> <pilot version (example: 2021.03)> <CPU arch subdir (example: x86_64/amd/zen2)> <path to tarball>" >&2
if [ $# -lt 3 ]; then
echo "ERROR: Usage: $0 <EESSI tmp dir (example: /tmp/$USER/EESSI)> <component (software or compat)> <dir to tarball> <any additional options (example: --generic)>" >&2
exit 1
fi
eessi_tmpdir=$1
pilot_version=$2
cpu_arch_subdir=$3
target_tgz=$4
component=$2
basedir=$3

# see example parsing of command line arguments at
# https://wiki.bash-hackers.org/scripting/posparams#using_a_while_loop
# https://stackoverflow.com/questions/192249/how-do-i-parse-command-line-arguments-in-bash

display_help() {
echo "usage: $0 <EESSI tmp dir (example: /tmp/$USER/EESSI)> <component (software or compat)> <dir to tarball> [OPTIONS]"
echo " OPTIONS"
echo " -g | --generic - instructs script to tar files of generic architecture target"
echo " -h | --help - display this usage information"
}

POSITIONAL_ARGS=()

while [[ $# -gt 0 ]]; do
case $1 in
-g|--generic)
EASYBUILD_OPTARCH="GENERIC"
shift
;;
-h|--help)
display_help # Call your function
# no shifting needed here, we're done.
exit 0
;;
-*|--*)
echo "Error: Unknown option: $1" >&2
exit 1
;;
*) # No more options
POSITIONAL_ARGS+=("$1") # save positional arg
shift
;;
esac
done

set -- "${POSITIONAL_ARGS[@]}"

TOPDIR=$(dirname $(realpath $0))

source $TOPDIR/utils.sh

# need to source minimal_eessi_env early to have EESSI_CPU_FAMILY defined
source $TOPDIR/init/minimal_eessi_env

if [ -d $EESSI_CVMFS_REPO ]; then
echo_green "$EESSI_CVMFS_REPO available, OK!"
else
fatal_error "$EESSI_CVMFS_REPO is not available!"
fi

if [[ "$EASYBUILD_OPTARCH" == "GENERIC" ]]; then
echo_yellow ">> Tar'ing GENERIC build, taking appropriate measures!"
export EESSI_SOFTWARE_SUBDIR_OVERRIDE=${EESSI_CPU_FAMILY}/generic
fi

# if EESSI_SOFTWARE_SUBDIR not set get it (note can be overridden by EESSI_SOFTWARE_SUBDIR_OVERRIDE)
if [ -z $EESSI_SOFTWARE_SUBDIR ]; then
source init/eessi_environment_variables
fi

cpu_arch_subdir=${EESSI_SOFTWARE_SUBDIR}
cpu_arch_subdir_converted=$(echo ${EESSI_SOFTWARE_SUBDIR} | tr '/' '-')
pilot_version=$EESSI_PILOT_VERSION

timestamp=$(date +%s)
export target_tgz=$(printf "%s/eessi-%s-%s-%s-%s-%d.tar.gz" ${basedir} ${EESSI_PILOT_VERSION} ${component} ${EESSI_OS_TYPE} ${cpu_arch_subdir_converted} ${timestamp})

tmpdir=`mktemp -d`
echo ">> tmpdir: $tmpdir"

os="linux"
cvmfs_repo="/cvmfs/pilot.eessi-hpc.org"
cvmfs_repo="/cvmfs/pilot.nessi.uiocloud.no"

software_dir="${cvmfs_repo}/versions/${pilot_version}/software/${os}/${cpu_arch_subdir}"
if [ ! -d ${software_dir} ]; then
Expand Down
2 changes: 2 additions & 0 deletions default.local
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
CVMFS_QUOTA_LIMIT=10000
CVMFS_HTTP_PROXY=DIRECT
54 changes: 0 additions & 54 deletions eessi-2021.12.yml
Original file line number Diff line number Diff line change
@@ -1,55 +1 @@
software:
R-bundle-Bioconductor:
toolchains:
foss-2020a:
versions:
'3.11':
versionsuffix: -R-4.0.0
GROMACS:
toolchains:
foss-2020a:
versions:
'2020.1':
versionsuffix: -Python-3.8.2
'2020.4':
versionsuffix: -Python-3.8.2
Horovod:
toolchains:
foss-2020a:
versions:
'0.21.3':
versionsuffix: -TensorFlow-2.3.1-Python-3.8.2
OpenFOAM:
toolchains:
foss-2020a:
versions: ['8', 'v2006']
OSU-Micro-Benchmarks:
toolchains:
gompi-2020a:
versions: ['5.6.3']
QuantumESPRESSO:
toolchains:
foss-2020a:
versions: ['6.6']
TensorFlow:
toolchains:
foss-2020a:
versions:
'2.3.1':
versionsuffix: -Python-3.8.2
RStudio-Server:
toolchains:
foss-2020a:
versions:
'1.3.1093':
versionsuffix: -Java-11-R-4.0.0
code-server:
toolchains:
SYSTEM:
versions: '3.7.3'
WRF:
toolchains:
foss-2020a:
versions:
'3.9.1.1':
versionsuffix: -dmpar
2 changes: 2 additions & 0 deletions init/eessi_environment_variables
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ function error() {
# set up minimal environment: $EESSI_PREFIX, $EESSI_PILOT_VERSION, $EESSI_OS_TYPE, $EESSI_CPU_FAMILY, $EPREFIX
source $EESSI_INIT_DIR_PATH/minimal_eessi_env

echo "minimal_eessi_env: EESSI_PREFIX=${EESSI_PREFIX}= EESSI_OS_TYPE=${EESSI_OS_TYPE}= EESSI_CPU_FAMILY=${EESSI_CPU_FAMILY}=" >> $output

if [ -d $EESSI_PREFIX ]; then
echo "Found EESSI pilot repo @ $EESSI_PREFIX!" >> $output

Expand Down
2 changes: 1 addition & 1 deletion init/minimal_eessi_env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# define minimal EESSI environment, without relying on external scripts

export EESSI_CVMFS_REPO="/cvmfs/pilot.eessi-hpc.org"
export EESSI_CVMFS_REPO="/cvmfs/pilot.nessi.uiocloud.no"
export EESSI_PILOT_VERSION="${EESSI_PILOT_VERSION_OVERRIDE:=2021.12}"
export EESSI_PREFIX=$EESSI_CVMFS_REPO/versions/$EESSI_PILOT_VERSION

Expand Down
2 changes: 1 addition & 1 deletion install_software_layer.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/bash
export EESSI_PILOT_VERSION='2021.12'
./run_in_compat_layer_env.sh ./EESSI-pilot-install-software.sh
./run_in_compat_layer_env.sh ./EESSI-pilot-install-software.sh "$@"
4 changes: 4 additions & 0 deletions nessi.uiocloud.no.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## This file is maintained by Ansible - CHANGES WILL BE OVERWRITTEN
CVMFS_SERVER_URL="http://eessi-bot-devel_stratum1-0.nessi.uiocloud.no/cvmfs/@fqrn@"
CVMFS_KEYS_DIR=/etc/cvmfs/keys/nessi.uiocloud.no
CVMFS_USE_GEOAPI="yes"
9 changes: 9 additions & 0 deletions nessi.uiocloud.no/pilot.nessi.uiocloud.no.pub
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlPvj6cGKY/IH58gCJaQa
SqlJh1JqmNwjhwVQwUCW4VhGhKc7zX3rbDCRge4UOGNXb6/WTBipz8S3lGJ20O6m
1fE+SlujCib269oPRh2Mxd9ZYwjXB29+lVWT6s/L6QxMg4lCUQ83Kz6/sV1KycDF
myDxT0S/xgJ8n94eBCM5hxrrPoAAHChcyy403EIPhUN6zdskZq/qA83sm21PiYjq
NQhzWagLOnbJvXjKApyIfcg10P5pGCN5mROWIoerW34lpPmEgezFQpJE4re5JMzM
xQCbwYFydVPgVWJ+CmJZKG7dxirox6vbO3ukWMGUFfv9tQ+TmlZfl8fq8mHGdtIW
LQIDAQAB
-----END PUBLIC KEY-----
4 changes: 3 additions & 1 deletion run_in_compat_layer_env.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
#!/bin/bash
echo "is env var EASYBUILD_OPTARCH set?"
env | grep -i EASYBUILD_OPTARCH | sed -e 's/^/run_in_compat_layer.sh:/'
if [ -z $EESSI_PILOT_VERSION ]; then
echo "ERROR: \$EESSI_PILOT_VERSION must be set!" >&2
exit 1
fi
EESSI_COMPAT_LAYER_DIR="/cvmfs/pilot.eessi-hpc.org/versions/${EESSI_PILOT_VERSION}/compat/linux/$(uname -m)"
EESSI_COMPAT_LAYER_DIR="/cvmfs/pilot.nessi.uiocloud.no/versions/${EESSI_PILOT_VERSION}/compat/linux/$(uname -m)"
if [ ! -d ${EESSI_COMPAT_LAYER_DIR} ]; then
echo "ERROR: ${EESSI_COMPAT_LAYER_DIR} does not exist!" >&2
exit 1
Expand Down