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.
dedal install-spack
1. 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.
dedal set-config
2. Sets configuration parameters for the session.
Options:
-
--use_cache
Enables cashing -
--use_spack_global
Uses 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
dedal show-config
3. Show the current configuration.
dedal clear-config
4. Clears stored configuration
dedal add-spack-repo
5. 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]
dedal setup-spack-env
6. Setups a spack environment according to the given configuration.
dedal concretize
7. Spack concretization step.
dedal install-packages
9. Installs spack packages present in the spack environment defined in configuration.
Options:
-
--jobs <INTEGER>
Number of parallel jobs for spack installation