diff --git a/etcdmain/help.go b/etcdmain/help.go index d7313b4e05d6..699e4e5daa46 100644 --- a/etcdmain/help.go +++ b/etcdmain/help.go @@ -18,175 +18,177 @@ import ( "strconv" "github.com/coreos/etcd/embed" + + "github.com/google/goterm/term" ) var ( - usageline = `usage: etcd [flags] - start an etcd server + usageline = term.Bold(`Usage`).String() + ` + +etcd [flags] + Start an etcd server. - etcd --version - show the version of etcd +etcd --version + Show the version of etcd. - etcd -h | --help - show the help information about etcd +etcd -h | --help + Show the help information about etcd. - etcd --config-file - path to the server configuration file +etcd --config-file + Path to the server configuration file. - etcd gateway - run the stateless pass-through etcd TCP connection forwarding proxy +etcd gateway + Run the stateless pass-through etcd TCP connection forwarding proxy. - etcd grpc-proxy - run the stateless etcd v3 gRPC L7 reverse proxy - ` +etcd grpc-proxy + Run the stateless etcd v3 gRPC L7 reverse proxy. +` flagsline = ` -member flags: - --name 'default' - human-readable name for this member. - --data-dir '${name}.etcd' - path to the data directory. - --wal-dir '' - path to the dedicated wal directory. - --snapshot-count '100000' - number of committed transactions to trigger a snapshot to disk. - --heartbeat-interval '100' - time (in milliseconds) of a heartbeat interval. - --election-timeout '1000' - time (in milliseconds) for an election to timeout. See tuning documentation for details. - --listen-peer-urls 'http://localhost:2380' - list of URLs to listen on for peer traffic. - --listen-client-urls 'http://localhost:2379' - list of URLs to listen on for client traffic. - --max-snapshots '` + strconv.Itoa(embed.DefaultMaxSnapshots) + `' - maximum number of snapshot files to retain (0 is unlimited). - --max-wals '` + strconv.Itoa(embed.DefaultMaxWALs) + `' - maximum number of wal files to retain (0 is unlimited). - --quota-backend-bytes '0' - raise alarms when backend size exceeds the given quota (0 defaults to low space quota). - --max-txn-ops '128' - maximum number of operations permitted in a transaction. - --max-request-bytes '1572864' - maximum client request size in bytes the server will accept. - --grpc-keepalive-min-time '5s' - minimum duration interval that a client should wait before pinging server. - --grpc-keepalive-interval '2h' - frequency duration of server-to-client ping to check if a connection is alive (0 to disable). - --grpc-keepalive-timeout '20s' - additional duration of wait before closing a non-responsive connection (0 to disable). - -clustering flags: - --initial-advertise-peer-urls 'http://localhost:2380' - list of this member's peer URLs to advertise to the rest of the cluster. - --initial-cluster 'default=http://localhost:2380' - initial cluster configuration for bootstrapping. - --initial-cluster-state 'new' - initial cluster state ('new' or 'existing'). - --initial-cluster-token 'etcd-cluster' - initial cluster token for the etcd cluster during bootstrap. - Specifying this can protect you from unintended cross-cluster interaction when running multiple clusters. - --advertise-client-urls 'http://localhost:2379' - list of this member's client URLs to advertise to the public. - The client URLs advertised should be accessible to machines that talk to etcd cluster. etcd client libraries parse these URLs to connect to the cluster. - --discovery '' - discovery URL used to bootstrap the cluster. - --discovery-fallback 'proxy' - expected behavior ('exit' or 'proxy') when discovery services fails. - "proxy" supports v2 API only. - --discovery-proxy '' - HTTP proxy to use for traffic to discovery service. - --discovery-srv '' - dns srv domain used to bootstrap the cluster. - --discovery-srv-name '' - suffix to the dns srv name queried when bootstrapping. - --strict-reconfig-check '` + strconv.FormatBool(embed.DefaultStrictReconfigCheck) + `' - reject reconfiguration requests that would cause quorum loss. - --pre-vote 'false' - enable to run an additional Raft election phase. - --auto-compaction-retention '0' - auto compaction retention length. 0 means disable auto compaction. - --auto-compaction-mode 'periodic' - interpret 'auto-compaction-retention' one of: periodic|revision. 'periodic' for duration based retention, defaulting to hours if no time unit is provided (e.g. '5m'). 'revision' for revision number based retention. - --enable-v2 '` + strconv.FormatBool(embed.DefaultEnableV2) + `' - Accept etcd V2 client requests. - -proxy flags (v2 API only): - --proxy 'off' - proxy mode setting ('off', 'readonly' or 'on'). - --proxy-failure-wait 5000 - time (in milliseconds) an endpoint will be held in a failed state. - --proxy-refresh-interval 30000 - time (in milliseconds) of the endpoints refresh interval. - --proxy-dial-timeout 1000 - time (in milliseconds) for a dial to timeout. - --proxy-write-timeout 5000 - time (in milliseconds) for a write to timeout. - --proxy-read-timeout 0 - time (in milliseconds) for a read to timeout. - -security flags: - --cert-file '' - path to the client server TLS cert file. - --key-file '' - path to the client server TLS key file. - --client-cert-auth 'false' - enable client cert authentication. - --client-crl-file '' - path to the client certificate revocation list file. - --trusted-ca-file '' - path to the client server TLS trusted CA cert file. - --auto-tls 'false' - client TLS using generated certificates. - --peer-cert-file '' - path to the peer server TLS cert file. - --peer-key-file '' - path to the peer server TLS key file. - --peer-client-cert-auth 'false' - enable peer client cert authentication. - --peer-trusted-ca-file '' - path to the peer server TLS trusted CA file. - --peer-auto-tls 'false' - peer TLS using self-generated certificates if --peer-key-file and --peer-cert-file are not provided. - --peer-crl-file '' - path to the peer certificate revocation list file. - --cors '*' - comma-separated whitelist of origins for CORS, or cross-origin resource sharing, (empty or * means allow all). - --host-whitelist '*' - acceptable hostnames from HTTP client requests, if server is not secure (empty or * means allow all). - -logging flags - --debug 'false' - enable debug-level logging for etcd. - --log-package-levels '' - specify a particular log level for each etcd package (eg: 'etcdmain=CRITICAL,etcdserver=DEBUG'). - --log-output 'default' - specify 'stdout' or 'stderr' to skip journald logging even when running under systemd. - -profiling flags: - --enable-pprof 'false' - Enable runtime profiling data via HTTP server. Address is at client URL + "/debug/pprof/" - --metrics 'basic' - Set level of detail for exported metrics, specify 'extensive' to include histogram metrics. - --listen-metrics-urls '' - List of URLs to listen on for metrics. - -auth flags: - --auth-token 'simple' - Specify a v3 authentication token type and its options ('simple' or 'jwt'). - -experimental flags: - --experimental-initial-corrupt-check 'false' - enable to check data corruption before serving any client/peer traffic. - --experimental-corrupt-check-time '0s' - duration of time between cluster corruption check passes. - --experimental-enable-v2v3 '' - serve v2 requests through the v3 backend under a given prefix. - - -Please be CAUTIOUS when using unsafe flags because it will break the guarantees -given by the consensus protocol. - -unsafe flags: - --force-new-cluster 'false' - force to create a new one-member cluster. +` + term.Bold(`Member:`).String() + ` + --name 'default' + Human-readable name for this member. + --data-dir '${name}.etcd' + Path to the data directory. + --wal-dir '' + Path to the dedicated wal directory. + --snapshot-count '100000' + Number of committed transactions to trigger a snapshot to disk. + --heartbeat-interval '100' + Time (in milliseconds) of a heartbeat interval. + --election-timeout '1000' + Time (in milliseconds) for an election to timeout. See tuning documentation for details. + --listen-peer-urls 'http://localhost:2380' + List of URLs to listen on for peer traffic. + --listen-client-urls 'http://localhost:2379' + List of URLs to listen on for client traffic. + --max-snapshots '` + strconv.Itoa(embed.DefaultMaxSnapshots) + `' + Maximum number of snapshot files to retain (0 is unlimited). + --max-wals '` + strconv.Itoa(embed.DefaultMaxWALs) + `' + Maximum number of wal files to retain (0 is unlimited). + --quota-backend-bytes '0' + Raise alarms when backend size exceeds the given quota (0 defaults to low space quota). + --max-txn-ops '128' + Maximum number of operations permitted in a transaction. + --max-request-bytes '1572864' + Maximum client request size in bytes the server will accept. + --grpc-keepalive-min-time '5s' + Minimum duration interval that a client should wait before pinging server. + --grpc-keepalive-interval '2h' + Frequency duration of server-to-client ping to check if a connection is alive (0 to disable). + --grpc-keepalive-timeout '20s' + Additional duration of wait before closing a non-responsive connection (0 to disable). + +` + term.Bold(`Clustering:`).String() + ` + --initial-advertise-peer-urls 'http://localhost:2380' + List of this member's peer URLs to advertise to the rest of the cluster. + --initial-cluster 'default=http://localhost:2380' + Initial cluster configuration for bootstrapping. + --initial-cluster-state 'new' + Initial cluster state ('new' or 'existing'). + --initial-cluster-token 'etcd-cluster' + Initial cluster token for the etcd cluster during bootstrap. + Specifying this can protect you from unintended cross-cluster interaction when running multiple clusters. + --advertise-client-urls 'http://localhost:2379' + List of this member's client URLs to advertise to the public. + The client URLs advertised should be accessible to machines that talk to etcd cluster. etcd client libraries parse these URLs to connect to the cluster. + --discovery '' + Discovery URL used to bootstrap the cluster. + --discovery-fallback 'proxy' + Expected behavior ('exit' or 'proxy') when discovery services fails. + "proxy" supports v2 API only. + --discovery-proxy '' + HTTP proxy to use for traffic to discovery service. + --discovery-srv '' + DNS srv domain used to bootstrap the cluster. + --discovery-srv-name '' + Suffix to the dns srv name queried when bootstrapping. + --strict-reconfig-check '` + strconv.FormatBool(embed.DefaultStrictReconfigCheck) + `' + Reject reconfiguration requests that would cause quorum loss. + --pre-vote 'false' + Enable to run an additional Raft election phase. + --auto-compaction-retention '0' + Auto compaction retention length. 0 means disable auto compaction. + --auto-compaction-mode 'periodic' + Interpret 'auto-compaction-retention' one of: periodic|revision. 'periodic' for duration based retention, defaulting to hours if no time unit is provided (e.g. '5m'). 'revision' for revision number based retention. + --enable-v2 '` + strconv.FormatBool(embed.DefaultEnableV2) + `' + Accept etcd V2 client requests. + +` + term.Bold(`Security:`).String() + ` + --cert-file '' + Path to the client server TLS cert file. + --key-file '' + Path to the client server TLS key file. + --client-cert-auth 'false' + Enable client cert authentication. + --client-crl-file '' + Path to the client certificate revocation list file. + --trusted-ca-file '' + Path to the client server TLS trusted CA cert file. + --auto-tls 'false' + Client TLS using generated certificates. + --peer-cert-file '' + Path to the peer server TLS cert file. + --peer-key-file '' + Path to the peer server TLS key file. + --peer-client-cert-auth 'false' + Enable peer client cert authentication. + --peer-trusted-ca-file '' + Path to the peer server TLS trusted CA file. + --peer-auto-tls 'false' + Peer TLS using self-generated certificates if --peer-key-file and --peer-cert-file are not provided. + --peer-crl-file '' + Path to the peer certificate revocation list file. + --cors '*' + Comma-separated whitelist of origins for CORS, or cross-origin resource sharing, (empty or * means allow all). + --host-whitelist '*' + Acceptable hostnames from HTTP client requests, if server is not secure (empty or * means allow all). + +` + term.Bold(`Auth:`).String() + ` + --auth-token 'simple' + Specify a v3 authentication token type and its options ('simple' or 'jwt'). + +` + term.Bold(`Logging:`).String() + ` + --debug 'false' + Enable debug-level logging for etcd. + --log-package-levels '' + Specify a particular log level for each etcd package (eg: 'etcdmain=CRITICAL,etcdserver=DEBUG'). + --log-output 'default' + Specify 'stdout' or 'stderr' to skip journald logging even when running under systemd. + +` + term.Bold(`Profiling:`).String() + ` + --enable-pprof 'false' + Enable runtime profiling data via HTTP server. Address is at client URL + "/debug/pprof/" + --metrics 'basic' + Set level of detail for exported metrics, specify 'extensive' to include histogram metrics. + --listen-metrics-urls '' + List of URLs to listen on for metrics. + +` + term.Bold(`v2 Proxy (to be deprecated in v3):`).String() + ` + --proxy 'off' + Proxy mode setting ('off', 'readonly' or 'on'). + --proxy-failure-wait 5000 + Time (in milliseconds) an endpoint will be held in a failed state. + --proxy-refresh-interval 30000 + Time (in milliseconds) of the endpoints refresh interval. + --proxy-dial-timeout 1000 + Time (in milliseconds) for a dial to timeout. + --proxy-write-timeout 5000 + Time (in milliseconds) for a write to timeout. + --proxy-read-timeout 0 + Time (in milliseconds) for a read to timeout. + +` + term.Green(`Experimental feature:`).String() + ` + --experimental-initial-corrupt-check 'false' + Enable to check data corruption before serving any client/peer traffic. + --experimental-corrupt-check-time '0s' + Duration of time between cluster corruption check passes. + --experimental-enable-v2v3 '' + Serve v2 requests through the v3 backend under a given prefix. + +` + term.Red(`Unsafe feature:`).String() + ` + --force-new-cluster 'false' + Force to create a new one-member cluster. + +` + term.Red(`CAUTIOUS with unsafe flag; it may break the guarantees given by the consensus protocol!`).String() + ` ` )