@@ -13,16 +13,17 @@ you should do that first.
13
13
Why shpc?
14
14
=========
15
15
16
- While the library is currently focused on Singularity containers (hence
17
- the name) it's created to be modular, meaning that if another container technology
18
- is wanted, it can be added. The module name would still be appropriate, as
19
- singularity does imply a single entity that is "one library to rule them all!"
16
+ Singularity Registry HPC is created to be modular, meaning that we support a distinct
17
+ set of container technologies and module systems. The name of the library "Singularity
18
+ Registry HPC" does not refer specifically to the container technology "Singularity,"
19
+ but more generally implies the same spirit -- a single entity that is "one library to rule them all!"
20
+
20
21
21
22
What is a registry?
22
23
===================
23
24
24
25
A registry consists of a database of local containers configuration files, ``container.yaml ``
25
- files organized in the root of the shpc install in the ``registry `` folder . The namespace
26
+ files organized in the root of the shpc install in one of the ``registry `` folders . The namespace
26
27
is organized by Docker unique resources identifiers. When you install an identifier
27
28
as we saw above, the container binaries and customized module files are added to
28
29
the ``module_dir `` defined in your settings, which defaults to ``modules `` in the
@@ -99,15 +100,27 @@ Setup
99
100
=====
100
101
101
102
Setup includes, after installation, editing any configuration values to
102
- customize your install. The defaults are likely suitable for most.
103
- For any configuration value that you might set, the following variables
104
- are available to you:
103
+ customize your install. The configuration file will default to ``shpc/settings.yml ``
104
+ in the installed module, however you can create your own user settings file to
105
+ take preference over this one as follows:
106
+
107
+ .. code-block :: console
108
+
109
+ $ shpc config userinit
110
+
111
+
112
+ The defaults in either file are likely suitable for most. For any configuration value
113
+ that you might set, the following variables are available to you:
105
114
106
115
- ``$install_dir ``: the shpc folder
107
116
- ``$root_dir ``: the parent directory of shpc (where this README.md is located)
108
117
109
118
110
- A summary table of variables is included below, and then further discussed in detail.
119
+ Additionally, the variables ``module_base ``, ``container_base ``, and ``registry ``
120
+ can be set with environment variables that will be expanded at runtime. You cannot
121
+ use the protected set of substitution variables (``$install_dir `` and ``$install_root ``)
122
+ as environment variables, as they will be subbed in by shpc before environment
123
+ variable replacement. A summary table of variables is included below, and then further discussed in detail.
111
124
112
125
113
126
.. list-table :: Title
@@ -121,8 +134,8 @@ A summary table of variables is included below, and then further discussed in de
121
134
- Set a default module system. Currently lmod and tcl are supported
122
135
- [lmod, tcl]
123
136
* - registry
124
- - The full path to the registry folder (with subfolders with container.yaml recipes)
125
- - $root_dir/registry
137
+ - A list of full paths to one or more registry folders (with subfolders with container.yaml recipes)
138
+ - [ $root_dir/registry]
126
139
* - module_base
127
140
- The install directory for modules. Defaults to the install directory/modules
128
141
- $root_dir/modules
@@ -271,8 +284,10 @@ directory.
271
284
Registry
272
285
--------
273
286
274
- The registry folder in the root of the repository, but you can change it to
275
- be a custom one with the config variable ``registry ``
287
+ The registry parameter is a list of one or more registry locations (filesystem
288
+ directories) where shpc will search for ``container.yaml `` files. The default
289
+ registry shipped with shpc is the folder in the root of the repository, but
290
+ you can add or remove entries via the config variable ``registry ``
276
291
277
292
278
293
.. code-block :: console
@@ -409,6 +424,8 @@ file directly, or you can use ``shpc config``, which will accept:
409
424
410
425
- set to set a parameter and value
411
426
- get to get a parameter by name
427
+ - add to add a value to a parameter that is a list (e.g., registry)
428
+ - remove to remove a value from a parameter that is a list
412
429
413
430
The following example shows changing the default module_base path from the install directory modules folder.
414
431
@@ -428,6 +445,14 @@ And then to get values:
428
445
$ shpc config get module_base
429
446
430
447
448
+ And to add and remove a value to a list:
449
+
450
+ .. code-block::console
451
+
452
+ $ shpc config add registry:/tmp/registry
453
+ $ shpc config remove registry:/tmp/registry
454
+
455
+
431
456
You can also open the config in the editor defined in settings at ``config_editor ``
432
457
433
458
.. code-block :: console
0 commit comments