1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
14 "github.com/ghodss/yaml"
19 knownTypes := []string{}
20 for _, vt := range VolumeTypes {
21 c.Volumes = append(c.Volumes, vt().Examples()...)
22 knownTypes = append(knownTypes, vt().Type())
24 exampleConfigFile, err := yaml.Marshal(c)
28 sort.Strings(knownTypes)
29 knownTypeList := strings.Join(knownTypes, ", ")
30 fmt.Fprintf(os.Stderr, `
32 keepstore provides a content-addressed data store backed by a local filesystem or networked storage.
34 Usage: keepstore -config path/to/keepstore.yml
35 keepstore [OPTIONS] -dump-config
37 NOTE: All options (other than -config) are deprecated in favor of YAML
38 configuration. Use -dump-config to translate existing
39 configurations to YAML format.
44 fmt.Fprintf(os.Stderr, `
51 Local port to listen on. Can be "address:port" or ":port", where
52 "address" is a host IP address or name and "port" is a port number
57 Format of request/response and error logs: "json" or "text".
61 Path to write PID file during startup. This file is kept open and
62 locked with LOCK_EX until keepstore exits, so "fuser -k pidfile" is
63 one way to shut down. Exit immediately if there is an error
64 opening, locking, or writing the PID file.
68 Maximum RAM to use for data buffers, given in multiples of block
69 size (64 MiB). When this limit is reached, HTTP requests requiring
70 buffers (like GET and PUT) will wait for buffer space to be
75 Maximum concurrent requests. When this limit is reached, new
76 requests will receive 503 responses. Note: this limit does not
77 include idle connections from clients using HTTP keepalive, so it
78 does not strictly limit the number of concurrent connections. If
79 omitted or zero, the default is 2 * MaxBuffers.
83 Local file containing the secret blob signing key (used to
84 generate and verify blob signatures). This key should be
85 identical to the API server's blob_signing_key configuration
90 Honor read requests only if a valid signature is provided. This
91 should be true, except for development use and when migrating from
96 Duration for which new permission signatures (returned in PUT
97 responses) will be valid. This should be equal to the API
98 server's blob_signature_ttl configuration entry.
102 Local file containing the Arvados API token used by keep-balance
103 or data manager. Delete, trash, and index requests are honored
108 Enable trash and delete features. If false, trash lists will be
109 accepted but blocks will not be trashed or deleted.
113 Time duration after a block is trashed during which it can be
114 recovered using an /untrash request.
118 How often to check for (and delete) trashed blocks whose
119 TrashLifetime has expired.
123 Maximum number of concurrent trash operations. Default is 1, i.e.,
124 trash lists are processed serially.
128 Maximum number of concurrent block deletion operations (per
129 volume) when emptying trash. Default is 1.
133 Maximum number of concurrent pull operations. Default is 1, i.e.,
134 pull lists are processed serially.
138 Path to server certificate file in X509 format. Enables TLS mode.
140 Example: /var/lib/acme/live/keep0.example.com/fullchain
144 Path to server key file in X509 format. Enables TLS mode.
146 The key pair is read from disk during startup, and whenever SIGHUP
149 Example: /var/lib/acme/live/keep0.example.com/privkey
153 List of storage volumes. If omitted or empty, the default is to
154 use all directories named "keep" that exist in the top level
155 directory of a mount point at startup time.
159 (See volume configuration examples above.)
161 `, exampleConfigFile, knownTypeList)