You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/cluster-config.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -137,8 +137,8 @@ If custom package definitions are provided for the same package in more than one
137
137
138
138
The following precedence is applied, where 1 has higher precedence than 2 or 3:
139
139
140
-
1. packages defined in the (optional) `repo` path in the [recipe](recipes.md#custom-spack-packages)
141
-
2. packages defined in the (optional) site repo(s) defined in the `repo/repos.yaml` file of cluster configuration (documented here)
142
-
3. packages provided by Spack (in the `var/spack/repos/builtin` path)
140
+
1. packages defined in the (optional) `repo` path in the [recipe][custom-spack-packages]
141
+
2. packages defined in the (optional) site repo(s) defined in the `repo/repos.yaml` file of the cluster configuration (documented here)
142
+
3. packages defined in the package repositories configured in `config.yaml:spack:packages`, in the order specified (which typically includes `builtin`)
143
143
144
-
As of Stackinator v4, the definitions of some custom repositories (mainly CSCS' custom cray-mpich and its dependencies) was removed from Stackinator, and moved to the the site configuration
144
+
As of Stackinator v4, the definitions of some custom repositories (mainly CSCS' custom cray-mpich and its dependencies) was removed from Stackinator, and moved to the site configuration.
It's possible to configure multiple package repositories for the uenv build by providing a dictionary of spack repositories. For example:
45
+
46
+
```yaml title="config.yaml"
47
+
name: prgenv-gnu
48
+
store: /user-environment
49
+
spack:
50
+
repo: https://github.com/spack/spack.git
51
+
commit: releases/v1.0
52
+
packages:
53
+
builtin:
54
+
repo: https://github.com/spack/spack-packages.git
55
+
commit: develop
56
+
foo:
57
+
repo: https://github.com/foo/spack-packages.git
58
+
commit: v13.2
59
+
path: repos/spack_repo/foo
60
+
version: 2
61
+
```
62
+
63
+
The `path` entry is optional and defaults to `repos/spack_repo/${name}`, where the dictionary key is the `name`.
64
+
For the upstream spack-packages repository, the default value can be used.
65
+
66
+
!!! info
67
+
The order of package repositories is significant.
68
+
stackinator follows the same semantics as spack itself, where package repositories further up in the list take precedence over ones later in the list.
69
+
Refer to the [spack documentation](https://spack.readthedocs.io/en/latest/repositories.html#search-order-and-overriding-packages) for more information.
70
+
71
+
!!! info
72
+
`recipe`and `alps` are reserved repository names for internal stackinator use and can't be used for user-specified package repositories.
73
+
The `recipe` and `alps` repositories have higher precedence than repositories configured in `config.yaml` (see [custom spack packages][ref-custom-spack-packages] for more details).
74
+
44
75
!!! note "uenv recipe versions"
45
76
Stackinator 6 introduces breaking changes to the uenv recipe format, introduced to support Spack v1.0.
46
77
@@ -488,9 +519,10 @@ Modules are generated for the installed compilers and packages by spack.
488
519
- `modules:default:arch_folder`defaults to `false`. If set to `true` an error is raised, as Stackinator does not support this feature;
489
520
- `modules:default:roots:tcl`is ignored, as Stackinator automatically configures the module root to be inside the uenv mount point.
490
521
522
+
[](){#ref-custom-spack-packages}
491
523
## Custom Spack Packages
492
524
493
-
An optional package repository can be added to a recipe to provide new or customized Spack packages in addition to Spack's `builtin` package repository, if a `repo` path is provided in the recipe.
525
+
An optional package repository can be added to a recipe to provide new or customized Spack packages in addition to the package repositories configured in `config.yaml`, if a `repo` path is provided in the recipe.
494
526
495
527
For example, the following `repo` path will add custom package definitions for the `hdf5` and `nvhpc` packages:
496
528
@@ -503,6 +535,8 @@ repo
503
535
└─ package.py
504
536
```
505
537
538
+
Packages provided together with a recipe will be installed in a separate `recipe` namespace.
539
+
506
540
Additional custom packages can be provided as part of the cluster configuration, as well as additional site packages.
507
541
These packages are all optional, and will be installed together in a single Spack package repository that is made available to downstream users of the generated uenv stack.
508
542
See the documentation for [cluster configuration](cluster-config.md) for more detail.
@@ -524,12 +558,13 @@ See the documentation for [cluster configuration](cluster-config.md) for more de
524
558
In the above case, the package `fmt` is backported from `origin/develop` into the `stackinator-recipe`.
525
559
526
560
!!! alps
527
-
All packages are installed under a single spack package repository called `alps`.
561
+
All cluster configuration packages are installed under a single spack package repository called `alps`.
528
562
The CSCS configurations in [github.com/eth-cscs/alps-cluster-config](https://github.com/eth-cscs/alps-cluster-config) provides a site configuration that defines cray-mpich, its dependencies, and the most up to date versions of cuda, nvhpc etc to all clusters on Alps.
563
+
These site packages are installed under the `alps` Spack package repository namespace.
529
564
530
565
!!! warning
531
566
Unlike Spack package repositories, any `repos.yaml` file in the `repo` path will be ignored.
532
-
This is because the provided packages are added to the `alps` namespace.
567
+
This is because the provided packages are installed in the `recipe` namespace.
0 commit comments