forked from NERSC/shifter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
udiRoot.conf.example.in
294 lines (254 loc) · 9.64 KB
/
udiRoot.conf.example.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
# udiRoot.conf
#
# See https://github.com/NERSC/shifter/wiki/config-reference
#
# udiRoot.conf is read by shifter and most other related shifter utilities within
# the udiRoot component. Unless udiRoot is built enabling particular options
# udiRoot.conf must be owned by root, but readable by all users, or at least all
# users you want accessing shifter.
#
# Configuration File Format
#
# The file configuration format is a basic key=value, however space seperated
# strings can be used for multiple options. Multiple lines can be used if the
# final character on the line is '\'. Items cannot be quoted to allow spaces
# within the configuration option.
#
# Configuration File Options
#
#udiMount (required)
#
# Absolute path to where shifter should generate a mount point for its own use.
# This path to this should be writable by root and should not be in use for other purposes.
#
# Recommended value: /var/udiMount
udiMount=/var/udiMount
#loopMount (required)
#
# Absolute path to where shifter should mount loop device filesystems. This path
# should be writable by root and should not be in use for other purposes.
#
# Recommended value: /var/udiLoopMount
loopMount=/var/udiLoopMount
#imagePath (required)
#
# Absolute path to where shifter can find images. This path should be readable by
# root. This path should be visible by all nodes in the system. It may be possible
# to use some kind of rsyncing method to have this path be local on all systems,
# but that may prove problematic if a user attempts to use an image while it is
# being rsynced. Recommend using GPFS or lustre or similar.
imagePath=/images
# udiRootPath (required)
#
# Absolute path (can be a symlink) to where current version of udiRoot is
# installed. This path is used to find all needed shifter-specific utilities
# (shifter, shifterimg, setupRoot, unsetupRoot, mount, etc).
# In general, this should match the installation ${prefix} used when building.
#
# Recommended value: /opt/shifter/default
udiRootPath=@SHIFTER_PREFIX@
# sitePreMountHook
#
# Script to be run before bind-mounting the siteFs filesystems. This script needs
# to be root owned and executable by root. It should create any directories on
# the path to the mount point, but not the mount point itself (e.g., mkdir -p
# global but not mkdir -p global/u1 if your siteFs path is /global/u1 )
#
# Note that the script is executed within your udiMount directory and so all your
# paths within the script should be relative to that.
#
# Recommended value: /etc/opt/nersc/udiRoot/premount.sh
#sitePreMountHook=@SHIFTER_SYSCONFDIR@/premount.sh
# sitePostMountHook
#
# Script to be run after bind-mounting the siteFs filesystems. This script need to
# be root owned and executable by root. It should do any work required after
# performing the mounts, e.g., generating a symlink.
#
# Note that the script is executed within your udiMount directory and so all your
# paths within the script should be relative to that.
#
# Recommended value: /etc/opt/nersc/udiRoot/postmount.sh
#sitePostMountHook=@SHIFTER_SYSCONFDIR@/postmount.sh
#optUdiImage
#
# Absolute path to the udiImage directory to be bind-mounted onto /opt/udiImage.
# This is typically pre-built with shifter to include an sshd, but you could add
# other things if you so desire.
#
# Recommended value: /opt/shifter/udiRoot/default/deps/udiImage
optUdiImage=@SHIFTER_LIBEXECDIR@/@PACKAGE_NAME@/opt/udiImage
#
# Absolute path to the files you want copied into /etc for every container. This
# path must be root owned (including the files within), and it must contain, at
# minimum, nsswitch.conf, passwd, group.
#
# Note that any files you put in this path will override whatever the user
# included in their image.
#
# Recommended value: /opt/shifter/default/etc_files
etcPath=@SHIFTER_ETC_FILESDIR@
#allowLocalChroot (0 or 1)
#
# shifter can be used to construct a "container" out a of local path instead of a
# loop device filesystem. This can be useful if you have an unpacked layer you
# want to examine, or to enable shifter services within an existing path. Setting
# to 1 will allow this path-specified shifting, 0 will not.
#
# This must be enabled if the "ccm" emulation mode is desired. (ccm emulation is
# effectively done with shifter --image=local:/ within the SLURM integration.
#autoLoadKernelModule (0 or 1)
#
# Flag to determine if kernel modules can be automatically loaded by shifter if
# required. This is typically limited to loop, squashfs, ext4 (and its dependencies)
#
# Recommend 0 if you already load loop, squashfs, and ext4 as part of node bootup
# process.
#
# Recommend 1 if you want to let shifter load them for you.
#mountUdiRootWritable (required)
#
# Flag to remount the udiMount VFS read-only after setup. This is typically only
# needed for debugging, and should usually be set to 1.
#
# Recommended value: 1
mountUdiRootWritable=1
#maxGroupCount (required)
#
# Maximum number of groups to allow. If the embedded sshd is being used, then this
# should be set to 31. This is used when preparing the /etc/group file, which is
# a filtered version of the group file you provide to shifter. The filtering is
# done because the libc utilities for parsing an /etc/group file are typically
# more limited than the LDAP counterparts. Since LDAP is not usable within
# shifter, a filtered group file is used.
#
# Recommended value: 31
maxGroupCount=31
#modprobePath
#
# Absolute path to known-good modprobe
modprobePath=@MODPROBE_PATH@
#insmodPath (required)
#
# Absolute path to known-good insmod
insmodPath=@INSMOD_PATH@
#cpPath (required)
#
# Absolute path to known-good cp
cpPath=@CP_PATH@
#mvPath (required)
#
# Absolute path to known-good mv
mvPath=@MV_PATH@
#chmodPath
#
# Absolute path to known-good chmod
chmodPath=@CHMOD_PATH@
#ddPath
#
# Absolute path to known-good dd
ddPath=@DD_PATH@
#mkfsXfsPath
#
# Absolute path to known-good mkfs.xfs
# mkfsXfsPath=@MKFSXFS_PATH@
#rootfsType
#
# The filesystem type to use for setting up the shifter VFS layer. This is
# typically just tmpfs. On cray compute nodes (CLE 5.2), tmpfs will not work,
# instead use ramfs.
#
# Recommended value: tmpfs
rootfsType=@ROOTFS_TYPE@
#gatewayTimeout (optional)
#
# Time in seconds to wait for the imagegw to respond before failing over to next
# (or failing).
#kmodBasePath
#
# Optional absolute path to where kernel modules are accessible -- up-to-but-not-
# including the kernel version directory. On many systems this will be /lib/modules,
# on Cray systems where kernel modules are built as part of the installation process,
# point to where you installed them (possibly under /opt/shifter/udiRoot/default/kmod)
#
# This is not necessary if autoLoadKernelModule is 0, and is required if it is 1.
#kmodCacheFile (deprecated)
#
#Do not use.
#siteFs
#
# Semicolon seperated list of paths to be automatically bind-mounted into the
# container. This is typically used to make network filesystems accessible
# within the container, but could be used to allow certain other facilities,
# like /var/run or /var/spool/alps to be accessible within the image (depending
# on your needs).
#
# Do not attempt to bind things under /usr or other common critical paths within
# containers.
#
# It is OK to perform this under /var or /opt or a novel path that your site
# maintains (e.g., for NERSC, /global).
siteFs=/home:/home
#siteEnv
#
# Space seperated list of environment variables to automatically set (or add, or
# replace) when a shifter container is setup.
#
# This can be useful if network home directories are mounted into the container
# and you users want a way to prevent their localized dotfiles from running. (e.g.,
# do not execute if SHIFTER_RUNTIME is set).
#
siteEnv=SHIFTER_RUNTIME=1
#siteEnvAppend
#
# Space seperated list of environment variables to automatically append (or add)
# when a shifter container is setup. This only makes sense for colon seperated
# environment variables, .e.g, PATH.
#
# This can be used if your site patches in a path that you want to appear in the
# path. Recommend that all binaries are compatible with all containers, i.e., are
# statically linked, to ensure they work.
#
siteEnvAppend=PATH=/opt/udiImage/bin
# siteEnvPrepend
#
# Space seperated list of environment variables to automatically prepend (or add)
# when a shifter container is setup. This only makes sense for colon seperated
# environment variables, e.g., PATH.
#
# This can be used if your site patches in a path that you want to appear in the
# path. Recommend that all binaries are compatible with all containers, i.e., are
# statically linked, to ensure they work.
#
#siteEnvPrepend=PATH=/opt/udiImage/bin
#imageGateway
#
# Space seperated URLs for your imagegw. Used by shifterimg and SLURM batch
# integration to communicate with the imagegw.
# batchType (optional)
#
# Used by batch integration code to pick useful settings. May be deprecated in
# the future as it is not necessary at this point.
#
imageGateway=http://imagegwapi:5000
#system (required)
#
# Name of your system, e.g., edison or cori. This name must match a configured
# system in the imagegw. This is primarily used by shifterimg to self-identify
# which system it is representing.
#
system=mycluster
#defaultImageType (required)
#
# Default image type for lookups and user input parsing. This should almost
# certainly be set to "docker" for most systems.
#
defaultImageType=docker
#siteResources (optional)
#
# Absolute path to where site-specific resources will be bind-mounted inside the
# container to enable features like native MPI or GPU support.
# This configuration only affects the container. The specified path will be automatically
# created inside the container. The specified path doesn't need to exist on the host.
#
siteResources=/opt/shifter/site-resources