Merge branch 'master' into 9766-register-workflow
[arvados.git] / doc / _includes / _mount_types.liquid
1 Mount types
2
3 The "mounts" hash is the primary mechanism for adding data to the container at runtime (beyond what is already in the container image).
4
5 Each value of the "mounts" hash is itself a hash, whose "kind" key determines the handler used to attach data to the container.
6
7 table(table table-bordered table-condensed).
8 |_. Mount type|_. Kind|_. Description|_. Examples|
9 |Arvados data collection|@collection@|@"portable_data_hash"@ _or_ @"uuid"@ _may_ be provided. If not provided, a new collection will be created. This is useful when @"writable":true@ and the container's @output_path@ is (or is a subdirectory of) this mount target.
10 @"writable"@ may be provided with a @true@ or @false@ to indicate the path must (or must not) be writable. If not specified, the system can choose.
11 @"path"@ may be provided, and defaults to @"/"@.
12 At container startup, the target path will have the same directory structure as the given path within the collection. Even if the files/directories are writable in the container, modifications will _not_ be saved back to the original collections when the container ends.|<pre><code>{
13  "kind":"collection",
14  "uuid":"...",
15  "path":"/foo.txt"
16 }
17 {
18  "kind":"collection",
19  "uuid":"..."
20 }</code></pre>|
21 |Git tree|@git_tree@|One of { @"git-url"@, @"repository_name"@, @"uuid"@ } must be provided.
22 One of { @"commit"@, @"revisions"@ } must be provided.
23 "path" may be provided. The default path is "/".
24 At container startup, the target path will have the source tree indicated by the given revision. The @.git@ metadata directory _will not_ be available: typically the system will use @git-archive@ rather than @git-checkout@ to prepare the target directory.
25 - If a value is given for @"revisions"@, it will be resolved to a set of commits (as desribed in the "ranges" section of git-revisions(1)) and the container request will be satisfiable by any commit in that set.
26 - If a value is given for @"commit"@, it will be resolved to a single commit, and the tree resulting from that commit will be used.
27 - @"path"@ can be used to select a subdirectory or a single file from the tree indicated by the selected commit.
28 - Multiple commits can resolve to the same tree: for example, the file/directory given in @"path"@ might not have changed between commits A and B.
29 - The resolved mount (found in the Container record) will have only the "kind" key and a "blob" or "tree" key indicating the 40-character hash of the git tree/blob used.|<pre><code>{
30  "kind":"git_tree",
31  "uuid":"zzzzz-s0uqq-xxxxxxxxxxxxxxx",
32  "commit":"master"
33 }
34 {
35  "kind":"git_tree",
36  "uuid":"zzzzz-s0uqq-xxxxxxxxxxxxxxx",
37  "commit_range":"bugfix^..master",
38  "path":"/crunch_scripts/grep"
39 }</code></pre>|
40 |Temporary directory|@tmp@|@"capacity"@: capacity (in bytes) of the storage device.
41 @"device_type"@ (optional, default "network"): one of @{"ram", "ssd", "disk", "network"}@ indicating the acceptable level of performance.
42 At container startup, the target path will be empty. When the container finishes, the content will be discarded. This will be backed by a storage mechanism no slower than the specified type.|<pre><code>{
43  "kind":"tmp",
44  "capacity":100000000000
45 }
46 {
47  "kind":"tmp",
48  "capacity":1000000000,
49  "device_type":"ram"
50 }</code></pre>|
51 |Keep|@keep@|Expose all readable collections via arv-mount.
52 Requires suitable runtime constraints.|<pre><code>{
53  "kind":"keep"
54 }</code></pre>|
55 |Mounted file or directory|@file@|@"path"@: absolute path (inside the container) of a file or directory that is (or is inside) another mount target.
56 Can be used for "stdin" and "stdout" targets.|<pre><code>{
57  "kind":"file",
58  "path":"/mounted_tmp/a.out"
59 }</code></pre>|
60 |JSON document|@json@|A JSON-encoded string, array, or object.|<pre>{
61  "kind":"json",
62  "content":{"foo":"bar"}
63 }</pre>|