Dedal
This repository provides functionalities to easily managed spack environments and
helpers for the container image build flow.
Setting up the needed environment variables
The <checkout path>\dedal\.env file contains the environment variables required for OCI registry used for
caching.
Ensure that you edit the <checkout path>\dedal\.env file to match your environment.
The following provides an explanation of the various environment variables:
# OCI Registry Configuration Sample for concretization caches
# =============================
# The following variables configure the Harbor docker OCI registry (EBRAINS) used for caching.
# The hostname of the OCI registry. e.g. docker-registry.ebrains.eu
CONCRETIZE__OCI_HOST="docker-registry.ebrains.eu"
# The project name in the Docker registry.
CONCRETIZE__OCI_PROJECT="concretize_caches"
# The username used for authentication with the Docker registry.
CONCRETIZE__OCI_USERNAME="robot$concretize-cache-test+user"
# The password used for authentication with the Docker registry.
CONCRETIZE__OCI_HOST="###ACCESS_TOKEN###"
# OCI Registry Configuration Sample for binary caches
# =============================
# The following variables configure the Harbor docker OCI registry (EBRAINS) used for caching.
# The hostname of the OCI registry. e.g. docker-registry.ebrains.eu
BUILDCACHE_OCI_HOST="docker-registry.ebrains.eu"
# The project name in the Docker registry.
BUILDCACHE_OCI_PROJECT="binary-cache-test"
# The username used for authentication with the Docker registry.
BUILDCACHE_OCI_USERNAME="robot$binary-cache-test+user"
# The password used for authentication with the Docker registry.
BUILDCACHE_OCI_HOST="###ACCESS_TOKEN###"
For both concretization and binary caches, the cache version can be changed via the attributes
cache_version_concretize and cache_version_build.
The default values are v1.
Before using this library, the following tool must be installed on Linux distribution:
apt install -y bzip2 ca-certificates g++ gcc gfortran git gzip lsb-release patch python3 python3-pip tar unzip xz-utils zstd
python3 -m pip install --upgrade pip setuptools wheel
Dedal library installation
pip install dedal
Dedal CLI Commands
The following commands are available in this CLI tool. You can view detailed explanations by using the --help option
with any command.
1. dedal install-spack
Install spack in the install_dir folder.
Options:
-
--spack_version <TEXT>: Specifies the Spack version to be installed (default: v0.23.0). -
--bashrc_path <TEXT>: Defines the path to .bashrc.
2. dedal set-config
Sets configuration parameters for the session.
Options:
-
--use_cacheEnables cashing -
--use_spack_globalUses spack installed globally on the os -
--env_name <TEXT>Environment name -
--env_path <TEXT>Environment path to download locally -
--env_git_path <TEXT>Git path to download the environment -
--install_dir <TEXT>Install directory for installing spack; spack environments and repositories are stored here -
--upstream_instance <TEXT>Upstream instance for spack environment -
--system_name <TEXT>System name; it is used inside the spack environment -
--concretization_dir <TEXT>Directory where the concretization caching (spack.lock) will be downloaded -
--buildcache_dir <TEXT>Directory where the binary caching is downloaded for the spack packages -
--gpg_name <TEXT>Gpg name -
--gpg_mail <TEXT>Gpg mail contact address -
--cache_version_concretize <TEXT>Cache version for concretizaion data -
--cache_version_build <TEXT>Cache version for binary caches data -
--view <SpackViewEnum>Spack environment view -
--update_cache <bool>Flag for overriding existing cache
3. dedal show-config
Show the current configuration.
4. dedal clear-config
Clears stored configuration
5. dedal add-spack-repo
Adds a spack repository to the spack environments.
Options:
-
--repo_name <TEXT>Repository name [required] -
--path <TEXT>Repository path to download locally [required] -
--git_path <TEXT>Git path to download the repository [required]
6. dedal setup-spack-env
Setups a spack environment according to the given configuration.
7. dedal concretize
Spack concretization step.
9. dedal install-packages
Installs spack packages present in the spack environment defined in configuration.
Options:
-
--jobs <INTEGER>Number of parallel jobs for spack installation
