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
CSCS provides a build service for uenv that takes as its input a uenv recipe, and builds the uenv using the same pipeline used to build the officially supported uenv.
5
7
6
8
The command takes two arguments:
7
9
10
+
```
11
+
uenv build <recipe> <label>
12
+
```
13
+
8
14
*`recipe`: the path to the recipe
9
15
* A uenv recipe is a description of the software to build in the uenv.
10
16
See the [stackinator documentation](https://eth-cscs.github.io/stackinator/recipes/) for more information.
@@ -14,33 +20,40 @@ The command takes two arguments:
14
20
*`system` is the CSCS cluster to build on (e.g. `daint`, `santis`, `clariden`, `eiger`)
15
21
*`uarch` is the [micro-architecture][ref-uenv-label-uarch].
16
22
17
-
!!! example "building a uenv"
18
-
Call the
19
-
```
23
+
!!! example "Building a uenv"
24
+
The image will be built on `daint` for the `gh200` node type.
The build tool gives you a url to a status page, that shows the progress of the build.
25
-
After a successful build, the uenv can be pulled:
26
-
```
29
+
The output of the above command will print a url that links to a status page, for you to follow the progress of the build.
30
+
After a successful build, the uenv can be pulled using an address from the status page:
31
+
32
+
```bash
27
33
uenv image pull service::myapp/v3:1669479716
28
34
```
29
35
30
-
Note that the image is given a unique numeric tag, that you can find on the status page for the build.
36
+
Note that the image is given a unique numeric tag, provided on the status page for the build.
31
37
32
38
!!! info
33
39
To use an existing uenv recipe as the starting point for a custom recipe, `uenv start` the uenv and take the contents of the `meta/recipe` path in the mounted image (this is the recipe that was used to build the uenv).
34
40
35
41
All uenv built by `uenv build` are pushed into the `service` namespace, where they **can be accessed by all users logged in to CSCS**.
36
42
This makes it easy to share your uenv with other users, by giving them the name, version and tag of the image.
37
43
38
-
!!! warning
44
+
!!! danger
39
45
**If, for whatever reason, your uenv can not be made publicly available, do not use the build service.**
40
46
41
-
!!! example "search user-built uenv"
47
+
!!! example "Search user-built uenv"
42
48
To view all of the uenv on daint that have been built by the service:
43
49
```
44
50
uenv image find service::@daint
45
51
```
46
52
53
+
## Building with Stackinator
54
+
55
+
CSCS develops and maintains the [Stackinator](https://eth-cscs.github.io/stackinator) tool that is used to configure and build uenv.
56
+
57
+
!!! note
58
+
The tool is currently maintained for internal use, and is used by automated pipelines, including the one used by the `uenv build` command.
59
+
As such, CSCS provide limited support for the tool.
Copy file name to clipboardExpand all lines: docs/software/uenv/configure.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
@@ -8,10 +8,10 @@ There is support for limited per-user configuration via a configuration file, wh
8
8
9
9
Uenv is configured using a text configuration file.
10
10
11
-
The location of the configuration file follows the [XDG base directory specification](https://specifications.freedesktop.org/basedir-spec/latest/).
11
+
The location of the configuration file follows the [XDG base directory specification](https://specifications.freedesktop.org/basedir-spec/latest/), with the location defined as follows:
12
12
13
-
* If the `XDG_CONFIG_HOME` environment variable is set, the`$XDG_CONFIG_HOME/uenv/config`.
14
-
* Otherwise it defaults to`$HOME/.config/uenv/config`.
13
+
* If the `XDG_CONFIG_HOME` environment variable is set, use`$XDG_CONFIG_HOME/uenv/config`.
14
+
* Otherwise use the default location`$HOME/.config/uenv/config`.
15
15
16
16
### Syntax
17
17
@@ -29,7 +29,7 @@ Notes on the syntax:
29
29
30
30
* keys are case-sensitive: `color` and `Color` are not equivalent.
31
31
* all keys are lower case
32
-
* white space is trimmed from keys and values, e.g.: `color = true` will be parsed as key=`color` and value=`true`.
32
+
* white space is trimmed from keys and values, e.g.: `color = true` will be parsed as `key='color'` and `value='true'`.
Copy file name to clipboardExpand all lines: docs/software/uenv/deploy.md
+14-15Lines changed: 14 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,17 +26,16 @@ The version of the uenv.
26
26
27
27
The format of `version` depends on the specific uenv.
28
28
Often they use the `yy.mm` format, though they may also use the version of the software being packaged.
29
-
For example the `namd/3.0.1` uenv packages version 3.0.1 of the popular [NAMD](https://www.ks.uiuc.edu/Research/namd/) simulation tool.
29
+
For example the [`namd/3.0`][ref-uenv-namd] uenv packages version 3.0 of the popular [NAMD](https://www.ks.uiuc.edu/Research/namd/) simulation tool.
30
30
31
31
### uenv tag
32
32
33
33
Used to differentiate between _releases_ of a versioned uenv.
34
+
Some examples of tags include:
34
35
35
-
Some examples of tags include release candidates (`rc1`, `rc2`) and
36
-
37
-
*`rc1`, `rc2`: release candidates.
38
-
*`v1`: a first release typically made after some release candidates.
39
-
*`v2`: a second release, that might fix issues in the first release.
36
+
*`rc1`, `rc2`: release candidates;
37
+
*`v1`: a first release typically made after some release candidates;
38
+
*`v2`: a second release, that fixes issues in `v1`
40
39
41
40
### uenv system
42
41
@@ -61,10 +60,10 @@ The node type (microarchitecture) that the uenv is built for.
61
60
The following naming scheme is employed in the OCI container artifactory for uenv images:
62
61
63
62
```text
64
-
namespace/system/uarch/name/version:release
63
+
namespace/system/uarch/name/version:tag
65
64
```
66
65
67
-
Where the fields `system`, `uarch`, `name`, `version` and `release` are defined above.
66
+
Where the fields `system`, `uarch`, `name`, `version` and `tag` are defined above.
68
67
69
68
The `namespace` is one of:
70
69
@@ -73,11 +72,11 @@ The `namespace` is one of:
73
72
*`service`: where the uenv [build service][ref-uenv-build] pushes images.
74
73
75
74
!!! info "JFrog uenv registry"
76
-
The OCI container registry used to host uenv is on JFrogat [jfrog.svc.cscs.ch/artifactory/uenv/](https://jfrog.svc.cscs.ch/artifactory/uenv/).
75
+
The OCI container registry used to host uenv is on JFrog, and can be browsed at [jfrog.svc.cscs.ch/artifactory/uenv/](https://jfrog.svc.cscs.ch/artifactory/uenv/) (you may have to log in with CSCS credentials from the a VPN/CSCS network).
77
76
78
-
The address used to refer uenv images is of the form
77
+
The address of individual uenv images is of the form
The CI/CD pipeline for [eth-cscs/alps-uenv](https://github.com/eth-cscs/alps-uenv) pushes images to the JFrog uenv registry in the `build::` namespace.
146
145
147
-
Deploying a uenv copies the uenv imagre from the `build::` namespace to the `deploy::` namespace. The Squashfs image itself is not copied;
146
+
Deploying a uenv copies the uenv image from the `build::` namespace to the `deploy::` namespace. The Squashfs image itself is not copied;
148
147
a new tag for the uenv is created in the `deploy::` namespace.
149
148
150
149
The deployment is performed using the `uenv` command line tool, as demonstrated below:
@@ -193,7 +192,7 @@ To remove a uenv, you can use the `uenv` command line tool:
0 commit comments