X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0bb53c1cbcbcb8b3be50e6ecf3fdf0bb7cbd96b5..9a71dd94cb72a5fd1ed74ca71b4961de4108db02:/lib/config/generated_config.go diff --git a/lib/config/generated_config.go b/lib/config/generated_config.go index 32c101a5a0..ec5bc187d7 100644 --- a/lib/config/generated_config.go +++ b/lib/config/generated_config.go @@ -190,12 +190,21 @@ Clusters: MaxItemsPerResponse: 1000 # Maximum number of concurrent requests to accept in a single - # service process, or 0 for no limit. Currently supported only - # by keepstore. + # service process, or 0 for no limit. MaxConcurrentRequests: 0 - # Maximum number of 64MiB memory buffers per keepstore server - # process, or 0 for no limit. + # Maximum number of 64MiB memory buffers per Keepstore server process, or + # 0 for no limit. When this limit is reached, up to + # (MaxConcurrentRequests - MaxKeepBlobBuffers) HTTP requests requiring + # buffers (like GET and PUT) will wait for buffer space to be released. + # Any HTTP requests beyond MaxConcurrentRequests will receive an + # immediate 503 response. + # + # MaxKeepBlobBuffers should be set such that (MaxKeepBlobBuffers * 64MiB + # * 1.1) fits comfortably in memory. On a host dedicated to running + # Keepstore, divide total memory by 88MiB to suggest a suitable value. + # For example, if grep MemTotal /proc/meminfo reports MemTotal: 7125440 + # kB, compute 7125440 / (88 * 1024)=79 and configure MaxBuffers: 79 MaxKeepBlobBuffers: 128 # API methods to disable. Disabled methods are not listed in the @@ -281,6 +290,12 @@ Clusters: # in the directory where your API server is running. AnonymousUserToken: "" + # If a new user has an alternate email address (local@domain) + # with the domain given here, its local part becomes the new + # user's default username. Otherwise, the user's primary email + # address is used. + PreferDomainForUsername: "" + AuditLogs: # Time to keep audit logs, in seconds. (An audit log is a row added # to the "logs" table in the PostgreSQL database each time an @@ -374,13 +389,26 @@ Clusters: # collection's replication_desired attribute is nil. DefaultReplication: 2 - # Lifetime (in seconds) of blob permission signatures generated by - # the API server. This determines how long a client can take (after - # retrieving a collection record) to retrieve the collection data - # from Keep. If the client needs more time than that (assuming the - # collection still has the same content and the relevant user/token - # still has permission) the client can retrieve the collection again - # to get fresh signatures. + # BlobSigningTTL determines the minimum lifetime of transient + # data, i.e., blocks that are not referenced by + # collections. Unreferenced blocks exist for two reasons: + # + # 1) A data block must be written to a disk/cloud backend device + # before a collection can be created/updated with a reference to + # it. + # + # 2) Deleting or updating a collection can remove the last + # remaining reference to a data block. + # + # If BlobSigningTTL is too short, long-running + # processes/containers will fail when they take too long (a) + # between writing blocks and writing collections that reference + # them, or (b) between reading collections and reading the + # referenced blocks. + # + # If BlobSigningTTL is too long, data will still be stored long + # after the referring collections are deleted, and you will + # needlessly fill up disks or waste money on cloud storage. # # Modifying BlobSigningTTL invalidates existing signatures; see # BlobSigningKey note above. @@ -388,6 +416,36 @@ Clusters: # The default is 2 weeks. BlobSigningTTL: 336h + # When running keep-balance, this is the destination filename for + # the list of lost block hashes if there are any, one per line. + # Updated automically during each successful run. + BlobMissingReport: "" + + # keep-balance operates periodically, i.e.: do a + # scan/balance operation, sleep, repeat. + # + # BalancePeriod determines the interval between start times of + # successive scan/balance operations. If a scan/balance operation + # takes longer than RunPeriod, the next one will follow it + # immediately. + # + # If SIGUSR1 is received during an idle period between operations, + # the next operation will start immediately. + BalancePeriod: 10m + + # Limits the number of collections retrieved by keep-balance per + # API transaction. If this is zero, page size is + # determined by the API server's own page size limits (see + # API.MaxItemsPerResponse and API.MaxIndexDatabaseRead). + BalanceCollectionBatch: 0 + + # The size of keep-balance's internal queue of + # collections. Higher values use more memory and improve throughput + # by allowing keep-balance to fetch the next page of collections + # while the current page is still being processed. If this is zero + # or omitted, pages are processed serially. + BalanceCollectionBuffers: 1000 + # Default lifetime for ephemeral collections: 2 weeks. This must not # be less than BlobSigningTTL. DefaultTrashLifetime: 336h @@ -409,6 +467,24 @@ Clusters: # > 0s = auto-create a new version when older than the specified number of seconds. PreserveVersionIfIdle: -1s + # If non-empty, allow project and collection names to contain + # the "/" character (slash/stroke/solidus), and replace "/" with + # the given string in the filesystem hierarchy presented by + # WebDAV. Example values are "%2f" and "{slash}". Names that + # contain the substitution string itself may result in confusing + # behavior, so a value like "_" is not recommended. + # + # If the default empty value is used, the server will reject + # requests to create or rename a collection when the new name + # contains "/". + # + # If the value "/" is used, project and collection names + # containing "/" will be allowed, but they will not be + # accessible via WebDAV. + # + # Use of this feature is not recommended, if it can be avoided. + ForwardSlashNameSubstitution: "" + # Managed collection properties. At creation time, if the client didn't # provide the listed keys, they will be automatically populated following # one of the following behaviors: @@ -454,14 +530,127 @@ Clusters: MaxUUIDEntries: 1000 Login: - # These settings are provided by your OAuth2 provider (eg - # Google) used to perform upstream authentication. - ProviderAppSecret: "" - ProviderAppID: "" + # One of the following mechanisms (SSO, Google, PAM, LDAP, or + # LoginCluster) should be enabled; see + # https://doc.arvados.org/install/setup-login.html + + Google: + # Authenticate with Google. + Enable: false + + # Use the Google Cloud console to enable the People API (APIs + # and Services > Enable APIs and services > Google People API + # > Enable), generate a Client ID and secret (APIs and + # Services > Credentials > Create credentials > OAuth client + # ID > Web application) and add your controller's /login URL + # (e.g., "https://zzzzz.example.com/login") as an authorized + # redirect URL. + # + # Incompatible with ForceLegacyAPI14. ProviderAppID must be + # blank. + ClientID: "" + ClientSecret: "" + + # Allow users to log in to existing accounts using any verified + # email address listed by their Google account. If true, the + # Google People API must be enabled in order for Google login to + # work. If false, only the primary email address will be used. + AlternateEmailAddresses: true + + PAM: + # (Experimental) Use PAM to authenticate users. + Enable: false + + # PAM service name. PAM will apply the policy in the + # corresponding config file (e.g., /etc/pam.d/arvados) or, if + # there is none, the default "other" config. + Service: arvados + + # Domain name (e.g., "example.com") to use to construct the + # user's email address if PAM authentication returns a + # username with no "@". If empty, use the PAM username as the + # user's email address, whether or not it contains "@". + # + # Note that the email address is used as the primary key for + # user records when logging in. Therefore, if you change + # PAMDefaultEmailDomain after the initial installation, you + # should also update existing user records to reflect the new + # domain. Otherwise, next time those users log in, they will + # be given new accounts instead of accessing their existing + # accounts. + DefaultEmailDomain: "" + + LDAP: + # Use an LDAP service to authenticate users. + Enable: false + + # Server URL, like "ldap://ldapserver.example.com:389" or + # "ldaps://ldapserver.example.com:636". + URL: "ldap://ldap:389" + + # Use StartTLS upon connecting to the server. + StartTLS: true + + # Skip TLS certificate name verification. + InsecureTLS: false + + # Strip the @domain part if a user supplies an email-style + # username with this domain. If "*", strip any user-provided + # domain. If "", never strip the domain part. Example: + # "example.com" + StripDomain: "" + + # If, after applying StripDomain, the username contains no "@" + # character, append this domain to form an email-style + # username. Example: "example.com" + AppendDomain: "" + + # The LDAP attribute to filter on when looking up a username + # (after applying StripDomain and AppendDomain). + SearchAttribute: uid + + # Bind with this username (DN or UPN) and password when + # looking up the user record. + # + # Example user: "cn=admin,dc=example,dc=com" + SearchBindUser: "" + SearchBindPassword: "" + + # Directory base for username lookup. Example: + # "ou=Users,dc=example,dc=com" + SearchBase: "" + + # Additional filters for username lookup. Special characters + # in assertion values must be escaped (see RFC4515). Example: + # "(objectClass=person)" + SearchFilters: "" + + # LDAP attribute to use as the user's email address. + # + # Important: This must not be an attribute whose value can be + # edited in the directory by the users themselves. Otherwise, + # users can take over other users' Arvados accounts trivially + # (email address is the primary key for Arvados accounts.) + EmailAttribute: mail + + # LDAP attribute to use as the preferred Arvados username. If + # no value is found (or this config is empty) the username + # originally supplied by the user will be used. + UsernameAttribute: uid + + SSO: + # Authenticate with a separate SSO server. (Deprecated) + Enable: false + + # ProviderAppID and ProviderAppSecret are generated during SSO + # setup; see + # https://doc.arvados.org/v2.0/install/install-sso.html#update-config + ProviderAppID: "" + ProviderAppSecret: "" # The cluster ID to delegate the user database. When set, # logins on this cluster will be redirected to the login cluster - # (login cluster must appear in RemoteHosts with Proxy: true) + # (login cluster must appear in RemoteClusters with Proxy: true) LoginCluster: "" # How long a cached token belonging to a remote cluster will @@ -541,7 +730,7 @@ Clusters: # (experimental) cloud dispatcher for executing containers on # worker VMs. Begins with "-----BEGIN RSA PRIVATE KEY-----\n" # and ends with "\n-----END RSA PRIVATE KEY-----\n". - DispatchPrivateKey: none + DispatchPrivateKey: "" # Maximum time to wait for workers to come up before abandoning # stale locks from a previous dispatch process. @@ -573,7 +762,7 @@ Clusters: # has been reached or crunch_log_seconds_between_events has elapsed since # the last flush. LogBytesPerEvent: 4096 - LogSecondsBetweenEvents: 1 + LogSecondsBetweenEvents: 5s # The sample period for throttling logs. LogThrottlePeriod: 60s @@ -724,6 +913,16 @@ Clusters: # Worker VM image ID. ImageID: "" + # An executable file (located on the dispatcher host) to be + # copied to cloud instances at runtime and used as the + # container runner/supervisor. The default value is the + # dispatcher program itself. + # + # Use the empty string to disable this step: nothing will be + # copied, and cloud instances are assumed to have a suitable + # version of crunch-run installed. + DeployRunnerBinary: "/proc/self/exe" + # Tags to add on all resources (VMs, NICs, disks) created by # the container dispatcher. (Arvados's own tags -- # InstanceType, IdleBehavior, and InstanceSecret -- will also @@ -818,19 +1017,29 @@ Clusters: SAMPLE: true Driver: s3 DriverParameters: - # for s3 driver -- see # https://doc.arvados.org/install/configure-s3-object-storage.html + IAMRole: aaaaa AccessKey: aaaaa SecretKey: aaaaa Endpoint: "" Region: us-east-1a Bucket: aaaaa LocationConstraint: false + V2Signature: false IndexPageSize: 1000 ConnectTimeout: 1m ReadTimeout: 10m RaceWindow: 24h + + # For S3 driver, potentially unsafe tuning parameter, + # intentionally excluded from main documentation. + # + # Enable deletion (garbage collection) even when the + # configured BlobTrashLifetime is zero. WARNING: eventual + # consistency may result in race conditions that can cause + # data loss. Do not enable this unless you understand and + # accept the risk. UnsafeDelete: false # for azure driver -- see @@ -849,6 +1058,21 @@ Clusters: # for local directory driver -- see # https://doc.arvados.org/install/configure-fs-storage.html Root: /var/lib/arvados/keep-data + + # For local directory driver, potentially confusing tuning + # parameter, intentionally excluded from main documentation. + # + # When true, read and write operations (for whole 64MiB + # blocks) on an individual volume will queued and issued + # serially. When false, read and write operations will be + # issued concurrently. + # + # May possibly improve throughput if you have physical spinning disks + # and experience contention when there are multiple requests + # to the same volume. + # + # Otherwise, when using SSDs, RAID, or a shared network filesystem, you + # should leave this alone. Serialize: false Mail: @@ -992,7 +1216,7 @@ Clusters: RunningJobLogRecordsToFetch: 2000 # In systems with many shared projects, loading of dashboard and topnav - # cab be slow due to collections indexing; use the following parameters + # can be slow due to collections indexing; use the following parameters # to suppress these properties ShowRecentCollectionsOnDashboard: true ShowUserNotifications: true @@ -1019,6 +1243,70 @@ Clusters: VocabularyURL: "" FileViewersConfigURL: "" - # Use experimental controller code (see https://dev.arvados.org/issues/14287) - EnableBetaController14287: false + # Workbench welcome screen, this is HTML text that will be + # incorporated directly onto the page. + WelcomePageHTML: | + +

Please log in.

+ +

The "Log in" button below will show you a sign-in + page. After you log in, you will be redirected back to + Arvados Workbench.

+ +

If you have never used Arvados Workbench before, logging in + for the first time will automatically create a new + account.

+ + Arvados Workbench uses your name and email address only for + identification, and does not retrieve any other personal + information. + + # Workbench screen displayed to inactive users. This is HTML + # text that will be incorporated directly onto the page. + InactivePageHTML: | + +

Hi! You're logged in, but...

+

Your account is inactive.

+

An administrator must activate your account before you can get + any further.

+ + # Connecting to Arvados shell VMs tends to be site-specific. + # Put any special instructions here. This is HTML text that will + # be incorporated directly onto the Workbench page. + SSHHelpPageHTML: | + Accessing an Arvados VM with SSH (generic instructions). + Site configurations vary. Contact your local cluster administrator if you have difficulty accessing an Arvados shell node. + + # Sample text if you are using a "switchyard" ssh proxy. + # Replace "zzzzz" with your Cluster ID. + #SSHHelpPageHTML: | + #

Add a section like this to your SSH configuration file ( ~/.ssh/config):

+ #
Host *.zzzzz
+      #  TCPKeepAlive yes
+      #  ServerAliveInterval 60
+      #  ProxyCommand ssh -p2222 turnout@switchyard.zzzzz.arvadosapi.com -x -a $SSH_PROXY_FLAGS %h
+      # 
+ + # If you are using a switchyard ssh proxy, shell node hostnames + # may require a special hostname suffix. In the sample ssh + # configuration above, this would be ".zzzzz" + # This is added to the hostname in the "command line" column + # the Workbench "shell VMs" page. + # + # If your shell nodes are directly accessible by users without a + # proxy and have fully qualified host names, you should leave + # this blank. + SSHHelpHostSuffix: "" + + # Bypass new (Arvados 1.5) API implementations, and hand off + # requests directly to Rails instead. This can provide a temporary + # workaround for clients that are incompatible with the new API + # implementation. Note that it also disables some new federation + # features and will be removed in a future release. + ForceLegacyAPI14: false + +# (Experimental) Restart services automatically when config file +# changes are detected. Only supported by ` + "`" + `arvados-server boot` + "`" + ` in +# dev/test mode. +AutoReloadConfig: false `)