14812: Update API install documentation for new config as well.
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 8 Jul 2019 19:56:48 +0000 (15:56 -0400)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Mon, 8 Jul 2019 19:56:48 +0000 (15:56 -0400)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

doc/install/index.html.textile.liquid
doc/install/install-api-server.html.textile.liquid
doc/install/install-workbench-app.html.textile.liquid
lib/config/config.default.yml
lib/config/generated_config.go

index c31b2ed43c89b92b5ef8c5c15c8abdd4dd185cbe..7181fed5cffac0a9491c5fd5870ff983be1cf09a 100644 (file)
@@ -9,7 +9,7 @@ Copyright (C) The Arvados Authors. All rights reserved.
 SPDX-License-Identifier: CC-BY-SA-3.0
 {% endcomment %}
 
-Arvados components run on GNU/Linux systems, and supports multiple cloud operating stacks.  Arvados supports Debian and derivatives such as Ubuntu, as well as Red Hat and derivatives such as CentOS.
+Arvados components run on GNU/Linux systems, and supports multiple cloud operating stacks.  Arvados supports Debian and derivatives such as Ubuntu, as well as Red Hat and derivatives such as CentOS.  Although Arvados development is sponsored by Veritas Genetics which offers commercial support, "Arvados is Free Software":{{site.baseurl}}/copying/copying.html and we encourage self supported/community supported installations.
 
 Arvados components can be installed and configured in a number of different ways.
 
index 151c3e0988885221dd62f8e7c6a64dcba010fc64..f9fecea4a5d5fbb1f48f7c27f0ed6f6cad860b00 100644 (file)
@@ -45,92 +45,106 @@ Configure the API server to connect to your database by updating @/etc/arvados/a
 
 h2(#configure_application). Configure the API server
 
-Edit @/etc/arvados/config.yml@ to configure the settings described in the following sections.  The API server reads both @application.yml@ and its own @config/application.default.yml@ file.  The settings in @application.yml@ take precedence over the defaults that are defined in @config/application.default.yml@.  The @config/application.yml.example@ file is not read by the API server and is provided as a starting template only.
+Edit @/etc/arvados/config.yml@ to set the keys below.  Only the most important configuration options are listed here.  The full set of configuration options are listed in "config.yml":{{site.baseurl}}/admin/config.html
 
-@config/application.default.yml@ documents additional configuration settings not listed here.  You can "view the current source version":https://dev.arvados.org/projects/arvados/repository/revisions/master/entry/services/api/config/application.default.yml for reference.
+h3(#uuid_prefix). ClusterID
 
-Only put local configuration in @application.yml@.  Do not edit @application.default.yml@.
-
-h3(#uuid_prefix). uuid_prefix
-
-Define your @uuid_prefix@ in @application.yml@ by setting the @uuid_prefix@ field in the section for your environment.  This prefix is used for all database identifiers to identify the record as originating from this site.  It must be exactly 5 lowercase ASCII letters and digits.
-
-Example @application.yml@:
+The @ClusterID@ is used for all database identifiers to identify the record as originating from this site.  It is the first key under @Clusters@ in @config.yml@.  It must be exactly 5 lowercase ASCII letters and digits.
 
 <notextile>
-<pre><code>  uuid_prefix: <span class="userinput">zzzzz</span></code></pre>
+<pre><code>Clusters:
+  <span class="userinput">zzzzz</span>:
+    ...</code></pre>
 </notextile>
 
-h3. secret_token
+h3. API.RailsSessionSecretToken
 
-The @secret_token@ is used for for signing cookies.  IMPORTANT: This is a site secret. It should be at least 50 characters.  Generate a random value and set it in @application.yml@:
+The @API.RailsSessionSecretToken@ is used for for signing cookies.  IMPORTANT: This is a site secret. It should be at least 50 characters.  Generate a random value and set it in @config.yml@:
 
 <notextile>
 <pre><code>~$ <span class="userinput">ruby -e 'puts rand(2**400).to_s(36)'</span>
 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
 </code></pre></notextile>
 
-Example @application.yml@:
+Example @config.yml@:
 
 <notextile>
-<pre><code>  secret_token: <span class="userinput">yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy</span></code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    API:
+      RailsSessionSecretToken: <span class="userinput">yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy</span></code></pre>
 </notextile>
 
-h3(#blob_signing_key). blob_signing_key
+h3(#blob_signing_key). Collections.BlobSigningKey
 
-The @blob_signing_key@ is used to enforce access control to Keep blocks.  This same key must be provided to the Keepstore daemons when "installing Keepstore servers.":install-keepstore.html  IMPORTANT: This is a site secret. It should be at least 50 characters.  Generate a random value and set it in @application.yml@:
+The @Collections.BlobSigningKey@ is used to enforce access control to Keep blocks.  This same key must be provided to the Keepstore daemons when "installing Keepstore servers.":install-keepstore.html  IMPORTANT: This is a site secret. It should be at least 50 characters.  Generate a random value and set it in @application.yml@:
 
 <notextile>
 <pre><code>~$ <span class="userinput">ruby -e 'puts rand(2**400).to_s(36)'</span>
 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 </code></pre></notextile>
 
-Example @application.yml@:
+Example @config.yml@:
 
 <notextile>
-<pre><code>  blob_signing_key: <span class="userinput">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</span></code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    Collections:
+      BlobSigningKey: <span class="userinput">yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy</span></code></pre>
 </notextile>
 
-h3(#omniauth). sso_app_secret, sso_app_id, sso_provider_url
+h3(#omniauth). Login.ProviderAppID, Login.ProviderAppSecret, Services.SSO.ExternalURL
 
 The following settings enable the API server to communicate with the "Single Sign On (SSO) server":install-sso.html to authenticate user log in.
 
-Set @sso_provider_url@ to the base URL where your SSO server is installed.  This should be a URL consisting of the scheme and host (and optionally, port), without a trailing slash.
+Set @Services.SSO.ExternalURL@ to the base URL where your SSO server is installed.  This should be a URL consisting of the scheme and host (and optionally, port), without a trailing slash.
 
-Set @sso_app_secret@ and @sso_app_id@ to the corresponding values for @app_secret@ and @app_id@ used in the "Create arvados-server client for Single Sign On (SSO)":install-sso.html#client step.
+Set @Login.ProviderAppID@ and @Login.ProviderAppSecret@ to the corresponding values for @app_id@ and @app_secret@ used in the "Create arvados-server client for Single Sign On (SSO)":install-sso.html#client step.
 
-Example @application.yml@:
+Example @config.yml@:
 
 <notextile>
-<pre><code>  sso_app_id: <span class="userinput">arvados-server</span>
-  sso_app_secret: <span class="userinput">wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww</span>
-  sso_provider_url: <span class="userinput">https://sso.example.com</span>
-</code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    Services:
+      SSO:
+        ExternalURL: <span class="userinput">https://sso.example.com</span>
+    Login:
+      ProviderAppID: <span class="userinput">arvados-server</span>
+      ProviderAppSecret: <span class="userinput">wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww</span></code></pre>
 </notextile>
 
-h3. workbench_address
+h3. Services.Workbench1.ExternalURL
 
-Set @workbench_address@ to the URL of your workbench application after following "Install Workbench.":install-workbench-app.html
+Set @Services.Workbench1.ExternalURL@ to the URL of your workbench application after following "Install Workbench.":install-workbench-app.html
 
-Example @application.yml@:
+Example @config.yml@:
 
 <notextile>
-<pre><code>  workbench_address: <span class="userinput">https://workbench.zzzzz.example.com</span></code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    Services:
+      Workbench1:
+        ExternalURL: <span class="userinput">https://workbench.zzzzz.example.com</span></code></pre>
 </notextile>
 
-h3. websocket_address
+h3. Services.Websocket.ExternalURL
 
-Set @websocket_address@ to the @wss://@ URL of the API server websocket endpoint after following "Set up Web servers":#set_up.  The path of the default endpoint is @/websocket@.
+Set @Services.Websocket.ExternalURL@ to the @wss://@ URL of the API server websocket endpoint after following "Install the websocket server":install-ws.html .
 
-Example @application.yml@:
+Example @config.yml@:
 
 <notextile>
-<pre><code>  websocket_address: <span class="userinput">wss://ws.zzzzz.example.com</span>/websocket</code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    Services:
+      Websocket:
+        ExternalURL: <span class="userinput">wss://ws.zzzzz.example.com</span></code></pre>
 </notextile>
 
-h3(#git_repositories_dir). git_repositories_dir
+h3(#git_repositories_dir). Git.Repositories
 
-The @git_repositories_dir@ setting specifies the directory where user git repositories will be stored.
+The @Git.Repositories@ setting specifies the directory where user git repositories will be stored.
 
 The git server setup process is covered on "its own page":install-arv-git-httpd.html. For now, create an empty directory in the default location:
 
@@ -138,39 +152,47 @@ The git server setup process is covered on "its own page":install-arv-git-httpd.
 <pre><code>~$ <span class="userinput">sudo mkdir -p /var/lib/arvados/git/repositories</span>
 </code></pre></notextile>
 
-If you intend to store your git repositories in a different location, specify that location in @application.yml@.
-
-Default setting in @application.default.yml@:
+If you intend to store your git repositories in a different location, specify that location in @config.yml@.  Example:
 
 <notextile>
-<pre><code>  git_repositories_dir: <span class="userinput">/var/lib/arvados/git/repositories</span>
-</code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    Git:
+      Repositories: <span class="userinput">/var/lib/arvados/git/repositories</span></code></pre>
 </notextile>
 
-h3(#git_internal_dir). git_internal_dir
+h3(#enable_legacy_jobs_api). Containers.JobsAPI.Enable
 
-The @git_internal_dir@ setting specifies the location of Arvados' internal git repository.  By default this is @/var/lib/arvados/internal.git@.  This repository stores git commits that have been used to run Crunch jobs.  It should _not_ be a subdirectory of @git_repositories_dir@.
+Enable the legacy "Jobs API":install-crunch-dispatch.html .  Note: new installations should use the "Containers API":crunch2-slurm/install-prerequisites.html
 
-Example @application.yml@:
+Disabling the jobs API means methods involving @jobs@, @job_tasks@, @pipeline_templates@ and @pipeline_instances@ are disabled.  This functionality is superceded by the containers API which consists of @container_requests@, @containers@ and @workflows@.  Arvados clients (such as @arvados-cwl-runner@) detect which APIs are available and adjust behavior accordingly.
+
+* 'auto' -- (default) enable the Jobs API only if it has been used before (i.e., there are job records in the database), otherwise disable jobs API .
+* 'true' -- enable the Jobs API even if there are no existing job records.
+* 'false' -- disable the Jobs API even in the presence of existing job records.
 
 <notextile>
-<pre><code>  git_internal_dir: <span class="userinput">/var/lib/arvados/internal.git</span>
-</code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    Containers:
+      JobsAPI:
+        Enable: <span class="userinput">'auto'</span></code></pre>
 </notextile>
 
-h3(#enable_legacy_jobs_api). enable_legacy_jobs_api
+h4(#git_internal_dir). Containers.JobsAPI.GitInternalDir
 
-Enable the legacy "Jobs API":install-crunch-dispatch.html .  Note: new installations should use the "Containers API":crunch2-slurm/install-prerequisites.html
+Only required if the legacy "Jobs API" is enabled, otherwise you should skip this.
 
-Disabling the jobs API means methods involving @jobs@, @job_tasks@, @pipeline_templates@ and @pipeline_instances@ are disabled.  This functionality is superceded by the containers API which consists of @container_requests@, @containers@ and @workflows@.  Arvados clients (such as @arvados-cwl-runner@) detect which APIs are available and adjust behavior accordingly.
+The @Containers.JobsAPI.GitInternalDir@ setting specifies the location of Arvados' internal git repository.  By default this is @/var/lib/arvados/internal.git@.  This repository stores git commits that have been used to run Crunch jobs.  It should _not_ be a subdirectory of the directory in @Git.Repositories@.
 
-* auto -- (default) enable the Jobs API only if it has been used before (i.e., there are job records in the database), otherwise disable jobs API .
-* true -- enable the Jobs API even if there are no existing job records.
-* false -- disable the Jobs API even in the presence of existing job records.
+Example @config.yml@:
 
 <notextile>
-<pre><code>  enable_legacy_jobs_api: <span class="userinput">auto</span>
-</code></pre>
+<pre><code>Clusters:
+  zzzzz:
+    Containers:
+      JobsAPI:
+        GitInternalDir: <span class="userinput">/var/lib/arvados/internal.git</span></code></pre>
 </notextile>
 
 h2(#set_up). Set up Nginx and Passenger
@@ -199,7 +221,7 @@ server {
   # also ensure the following settings match it:
   # * `client_max_body_size` in the server section below
   # * `client_max_body_size` in the Workbench Nginx configuration (twice)
-  # * `max_request_size` in the API server's application.yml file
+  # * `API.MaxRequestSize` in config.yml
   client_max_body_size 128m;
 }
 
index 7ad56b32d6ee6987b648d98e875c4fc711e9acfa..f67ba8d6d10d4a2124f6b8dea3230f9b399cc3f3 100644 (file)
@@ -40,7 +40,7 @@ On a Red Hat-based system, install the following packages:
 
 h2(#configure). Configure Workbench
 
-Edit @/etc/arvados/config.yml@ following the instructions below.  Only a few of the most important configuration options are listed here.  The full set of configuration options are in the "Workbench section of config.yml":{{site.baseurl}}/admin/config.html
+Edit @/etc/arvados/config.yml@ to set the keys below.  Only the most important configuration options are listed here.  The full set of configuration options are in the "Workbench section of config.yml":{{site.baseurl}}/admin/config.html
 
 h3. Workbench.SecretKeyBase
 
@@ -54,6 +54,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
 Then put that value in the @Workbench.SecretKeyBase@ field.
 
+<notextile>
+<pre><code>Cluster:
+  zzzzz:
+    Workbench:
+      SecretKeyBase: <span class="userinput">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
+</code></pre>
+</notextile>
+
 h3. Services.Controller.ExternalURL
 
 Ensure that @Services.Controller.ExternalURL@ is configured for "Arvados Controller":install-controller.html . For example like this:
@@ -63,7 +71,7 @@ Ensure that @Services.Controller.ExternalURL@ is configured for "Arvados Control
   zzzzz:
     Services:
       Controller:
-        ExternalURL: https://prefix_uuid.your.domain
+        ExternalURL: <span class="userinput">https://prefix_uuid.your.domain</span>
 </code></pre>
 </notextile>
 
@@ -71,10 +79,27 @@ h3. Workbench.SiteName
 
 @Workbench.SiteName@ can be set to any arbitrary string. It is used to identify this Workbench to people visiting it.
 
+
+<notextile>
+<pre><code>Cluster:
+  zzzzz:
+    Workbench:
+      SiteName: <span class="userinput">My Arvados</span>
+</code></pre>
+</notextile>
+
 h3. TLS.Insecure
 
 For testing only.  Allows use of self-signed certificates.  If true, workbench will not verify the TLS certificate of Arvados Controller.
 
+<notextile>
+<pre><code>Cluster:
+  zzzzz:
+    TLS:
+      Insecure: <span class="userinput">false</span>
+</code></pre>
+</notextile>
+
 h2. Configure Piwik
 
 Piwik is optional, and can be to gather usage analytics.  In @/var/www/arvados-workbench/current/config@, copy @piwik.yml.example@ to @piwik.yml@ and edit to suit.
index bc72f108fdc8765938c3d7268964e75de9a34e2b..87ca9d290d57dcd11ac91446e1f454f44ee07ddb 100644 (file)
@@ -285,7 +285,7 @@ Clusters:
       # one another!
       BlobSigning: true
 
-      # blob_signing_key is a string of alphanumeric characters used to
+      # BlobSigningKey is a string of alphanumeric characters used to
       # generate permission signatures for Keep locators. It must be
       # identical to the permission key given to Keep. IMPORTANT: This is
       # a site secret. It should be at least 50 characters.
index feb203eae63e8d216903212f314f5215bc594e71..35443b2bd47c412e7f7e71a92ee1f029e401b991 100644 (file)
@@ -291,7 +291,7 @@ Clusters:
       # one another!
       BlobSigning: true
 
-      # blob_signing_key is a string of alphanumeric characters used to
+      # BlobSigningKey is a string of alphanumeric characters used to
       # generate permission signatures for Keep locators. It must be
       # identical to the permission key given to Keep. IMPORTANT: This is
       # a site secret. It should be at least 50 characters.