Add and match specification for variables and directories

This commit is contained in:
Jose Gracia 2024-05-24 14:15:19 +02:00
parent e7629d5616
commit 38e8823c85
6 changed files with 70 additions and 13 deletions

View file

@ -1,3 +1,60 @@
# software-stack-plumbing
Collection of scripts, etc, to make HLRS software stack work.
Collection of scripts, etc, to make HLRS software stack work.
## Notes on software stack at HLRS
Environment variables:
- `HLRS_OPT_PREFIX`: start of hpcoft managed subdirectory
- Set by HPCN
- Non-public
- Example: `HLRS_OPT_PREFIX=/opt/hlrs`
- `HLRS_SOFTWARE_STACK_PREFIX`: start of software stack as described in this document
- Set by this hpcoft
- Non-public
- Example: `HLRS_SOFTWARE_STACK_PREFIX=$HLRS_OPT_PREFIX/release`
- `HLRS_SOFTWARE_STACK_RELEASE_VERSION`: label of a currently active release
- Set by hpcoft
- Public
- Example: `HLRS_SOFTWARE_STACK_RELEASE_VERSION=24.1`
- `HLRS_SOFTWARE_STACK_RELEASE_ROOT` : start of subdirectory of currently active release
- Set by hpcoft
- Public
- Should contain all software, modules, data, etc., to use a release
- Defined by: `HLRS_SOFTWARE_STACK_RELEASE_ROOT=${HLRS_SOFTWARE_STACK_PREFIX}/${HLRS_SOFTWARE_STACK_RELEASE_VERSION}`
- `HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT` : start of subdirectory for all-things-spack of currently active release
- Set by hpcoft
- Non-public
- Install spack in `SPACK_ROOT=${HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT}/spack`
- Example: `HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/hlrs-spack`
- `HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE` : spack install tree of of currently active release.
- Set by hpcoft
- Public
- This can be used for hpcoft/users to chain/upstream to HLRS Spack installation.
- Defined by: `HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/opt-spack`
Directory layout:
```text
${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/
├── opt-spack (${HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE})/
│ ├── modulefiles
│ └── ...
├── opt-non-spack/
│ ├── modulefiles
│ └── ...
├── hlrs-spack (${HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT})/
│ ├── spack (${SPACK_ROOT})
│ ├── config
│ ├── repos
│ ├── environments
│ └── ...
└── hlrs-plumbing
├── scripts
├── ci-cd
└── ...
```

View file

@ -6,12 +6,12 @@ if [ -z "${HLRS_OPT_PREFIX}" ]; then
echo "ERROR: need environment variable HLRS_OPT_DIR"
else
_HLRS_SOFTWARE_STACK_PREFIX=${HLRS_OPT_PREFIX}/release
HLRS_SOFTWARE_STACK_PREFIX=${HLRS_OPT_PREFIX}/release
HLRS_SOFTWARE_STACK_RELEASE_VERSION=24.1
HLRS_SOFTWARE_STACK_RELEASE_ROOT=${_HLRS_SOFTWARE_STACK_PREFIX}/${HLRS_SOFTWARE_STACK_RELEASE_VERSION}
HLRS_SOFTWARE_STACK_RELEASE_ROOT=${HLRS_SOFTWARE_STACK_PREFIX}/${HLRS_SOFTWARE_STACK_RELEASE_VERSION}
unset _HLRS_SOFTWARE_STACK_PREFIX
unset HLRS_SOFTWARE_STACK_PREFIX
export HLRS_SOFTWARE_STACK_RELEASE_VERSION HLRS_SOFTWARE_STACK_RELEASE_ROOT
fi

View file

@ -6,12 +6,12 @@ if [ -z "${HLRS_OPT_PREFIX}" ]; then
echo "ERROR: need environment variable HLRS_OPT_DIR"
else
_HLRS_SOFTWARE_STACK_PREFIX=${HLRS_OPT_PREFIX}/spack/release
HLRS_SOFTWARE_STACK_PREFIX=${HLRS_OPT_PREFIX}/spack/release
HLRS_SOFTWARE_STACK_RELEASE_VERSION=23.1.0
HLRS_SOFTWARE_STACK_RELEASE_ROOT=${_HLRS_SOFTWARE_STACK_PREFIX}/${HLRS_SOFTWARE_STACK_RELEASE_VERSION}
HLRS_SOFTWARE_STACK_RELEASE_ROOT=${HLRS_SOFTWARE_STACK_PREFIX}/${HLRS_SOFTWARE_STACK_RELEASE_VERSION}
unset _HLRS_SOFTWARE_STACK_PREFIX
unset HLRS_SOFTWARE_STACK_PREFIX
export HLRS_SOFTWARE_STACK_RELEASE_VERSION HLRS_SOFTWARE_STACK_RELEASE_ROOT

View file

@ -6,11 +6,11 @@ if [ -z "${HLRS_SOFTWARE_STACK_RELEASE_ROOT}" ]; then
echo "ERROR: need environment variable HLRS_SOFTWARE_STACK_RELEASE_ROOT"
else
HLRS_SOFTWARE_STACK_SPACK_ROOT=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/spack
HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/hlrs-spack
# the following must be a directory containing a subdir named .spack-db/
HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/optional/spack
HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/opt-spack
export HLRS_SOFTWARE_STACK_SPACK_ROOT HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE
export HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE
fi

View file

@ -6,11 +6,11 @@ if [ -z "${HLRS_SOFTWARE_STACK_RELEASE_ROOT}" ]; then
echo "ERROR: need environment variable HLRS_SOFTWARE_STACK_RELEASE_ROOT"
else
HLRS_SOFTWARE_STACK_SPACK_ROOT=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/spack
HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}
# the following must be a directory containing a subdir named .spack-db/
HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE=${HLRS_SOFTWARE_STACK_RELEASE_ROOT}/optional
export HLRS_SOFTWARE_STACK_SPACK_ROOT HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE
export HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE
fi

View file

@ -3,7 +3,7 @@
# this unloads all varaibles related to HLRS software stack
#
unset HLRS_SOFTWARE_STACK_SPACK_ROOT
unset HLRS_SOFTWARE_STACK_HLRS_SPACK_ROOT
unset HLRS_SOFTWARE_STACK_SPACK_INSTALL_TREE
unset HLRS_SOFTWARE_STACK_RELEASE_VERSION
unset HLRS_SOFTWARE_STACK_RELEASE_ROOT