17726: Add singularity doc page.
authorTom Clegg <tom@curii.com>
Thu, 5 Aug 2021 19:14:57 +0000 (15:14 -0400)
committerTom Clegg <tom@curii.com>
Thu, 5 Aug 2021 19:14:57 +0000 (15:14 -0400)
Move Docker image collection format note from 2.2 to main (this change
was not in 2.2).

Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@curii.com>

doc/_config.yml
doc/admin/upgrading.html.textile.liquid
doc/install/singularity.html.textile.liquid [new file with mode: 0644]

index b18607ebb7490622d38e119ad6a0f0383fdb35ba..ff924e2f378381f4c8f4e586f3c2c3570d8202e2 100644 (file)
@@ -257,6 +257,7 @@ navbar:
     - Containers API (lsf):
       - install/crunch2-lsf/install-dispatch.html.textile.liquid
     - Additional configuration:
+      - install/singularity.html.textile.liquid
       - install/container-shell-access.html.textile.liquid
     - External dependencies:
       - install/install-postgresql.html.textile.liquid
index dfb6a0ad6e00d9e58cd2fe33bea7f32efc70cadf..19f8c4e849d03c945924f23aae89a5ba2aa02fec 100644 (file)
@@ -47,14 +47,14 @@ h3. crunch-dispatch-local now requires config.yml
 
 The @crunch-dispatch-local@ dispatcher now reads the API host and token from the system wide @/etc/arvados/config.yml@ .  It will fail to start that file is not found or not readable.
 
-h2(#v2_2_0). v2.2.0 (2021-06-03)
-
-"Upgrading from 2.1.0":#v2_1_0
-
 h3. Multi-file docker image collections
 
 Typically a docker image collection contains a single @.tar@ file at the top level. Handling of atypical cases has changed. If a docker image collection contains files with extensions other than @.tar@, they will be ignored (previously they could cause errors). If a docker image collection contains multiple @.tar@ files, it will cause an error at runtime, "cannot choose from multiple tar files in image collection" (previously one of the @.tar@ files was selected). Subdirectories are ignored. The @arv keep docker@ command always creates a collection with a single @.tar@ file, and never uses subdirectories, so this change will not affect most users.
 
+h2(#v2_2_0). v2.2.0 (2021-06-03)
+
+"Upgrading from 2.1.0":#v2_1_0
+
 h3. New spelling of S3 credential configs
 
 If you use the S3 driver for Keep volumes and specify credentials in your configuration file (as opposed to using an IAM role), you should change the spelling of the @AccessKey@ and @SecretKey@ config keys to @AccessKeyID@ and @SecretAccessKey@. If you don't update them, the previous spellings will still be accepted, but warnings will be logged at server startup.
diff --git a/doc/install/singularity.html.textile.liquid b/doc/install/singularity.html.textile.liquid
new file mode 100644 (file)
index 0000000..ca3ec8d
--- /dev/null
@@ -0,0 +1,37 @@
+---
+layout: default
+navsection: installguide
+title: Singularity container runtime
+...
+{% comment %}
+Copyright (C) The Arvados Authors. All rights reserved.
+
+SPDX-License-Identifier: CC-BY-SA-3.0
+{% endcomment %}
+
+Arvados can be configured to use Singularity instead of Docker to execute containers on cloud nodes or a SLURM/LSF cluster.
+
+Please note:
+* *Singularity support is currently considered experimental.*
+* Even when using the singularity runtime, users' container images are expected to be saved in Docker format using @arv keep docker@. Arvados converts the Docker image to Singularity format (@.sif@) at runtime as needed. Specifying a @.sif@ file as an image when submitting a container request is not yet supported.
+* Singularity does not limit the amount of memory available in a container. Each container will have access to all memory on the host where it runs.
+* Programs running in containers may behave differently due to differences between Singularity and Docker, _e.g._, the root (image) filesystem is read-only in a Singularity container.
+* Arvados is currently tested with Singularity version 3.5.2.
+
+To use singularity, first make sure Singularity is installed on your cloud worker image or SLURM/LSF compute nodes as applicable.
+
+<notextile>
+<pre><code>$ <span class="userinput">singularity version</span>
+3.5.2
+</code></pre>
+</notextile>
+
+Then update @Containers.RuntimeEngine@ in your cluster configuration:
+
+<notextile>
+<pre><code>      # Container runtime: "docker" (default) or "singularity" (experimental)
+      RuntimeEngine: singularity
+</code></pre>
+</notextile>
+
+Restart your dispatcher (@crunch-dispatch-slurm@ or @arvados-dispatch-cloud@) after updating your configuration file.