Environment Variables

Several aspects of StorageOS behaviour can be controlled via environment variables. These can be injected in via any of the usual mechanisms such as ConfigMaps.

Variable Name Valid in versions Description
JOIN 1.0+ Required A join token and/or list of cluster nodes to join. The first node will bootstrap the cluster. See cluster discovery. There is no default; this must be set for multiple-node clusters
HOSTNAME 1.0+ Hostname of the node, only if you wish to override it. In Kubernetes environments, typically set to spec.nodeName
ADVERTISE_IP 1.0+ IP address of the node for incoming connections. Defaults to first non-loopback address
DESCRIPTION 1.0+ The node description for display purposes only. Default is unset
LABELS 1.0+ Comma separated list of node labels. e.g. LABELS=country=us,env=prod. Default is unset
USERNAME 1.0+ Username to authenticate to the API with. Defaults to storageos
PASSWORD 1.0+ Password to authenticate to the API with. Defaults to storageos
DEVICE_DIR 1.0+ Where the volumes are exported. This directory must be shared into the container using the rshared volume mount option. Defaults to /var/lib/storageos/volumes
API_PORT 1.0+ Port for the API to listen on. Defaults to 5705 (IANA Registered)
NATS_PORT 1.0+ Port for NATS messaging to listen on. Defaults to 5708
NATS_HTTP_PORT 1.0+ Port for the NATS HTTP server to listen on. Defaults to 5709
NATS_CLUSTER_PORT 1.0+ Port for the NATS cluster service to listen on. Defaults to 5710
SERF_PORT 1.0+ Port for the Serf protocol to listen on. Defaults to 5711
DFS_PORT 1.0+ Port for DirectFS to listen on. Defaults to 5703
KV_PEER_PORT 1.0+ Port for the embedded Key/Value store. Defaults to 5707
KV_CLIENT_PORT 1.0+ Port for the embedded Key/Value store. Defaults to 5706
KV_BACKEND 1.0+ Type of KV store to use. Defaults to embedded. etcd is supported with KV_ADDR set to an external etcd instance
KV_ADDR 1.0+ Comma separated list of etcd targets, in the form ip[:port]. Must be specified with KV_BACKEND=etcd. Prefer multiple direct endpoints over a single load-balanced endpoint
LOG_LEVEL 1.0+ One of debug, info, warning or error. Defaults to info
LOG_FORMAT 1.0+ Logging output format, one of text or json. Defaults to json
LOG_FILTER 1.0+ Used to discard log messages based on category. e.g. LOG_FILTER=cp=info,dp=info,etcd=debug. Default is unset
DISABLE_TELEMETRY 1.0+ To disable anonymous usage reporting across the cluster, set to true. Defaults to false. To help improve the product, data such as API usage and StorageOS configuration information is collected
DISABLE_ERROR_REPORTING 1.0+ To disable error reporting across the cluster, set to true. Defaults to false. Errors are reported to help identify and resolve potential issues that may occur
IN_K8S_CLUSTER 1.0+ Toggles enhanced Kubernetes integration. Defaults to true and will be disabled automatically if Kubernetes API is not accessible. Requires StorageOS to be deployed as a DaemonSet or Pod.
KUBECONFIG 1.0+ Path to local kubeconfig file. Not normally required. Default is unset
CSI_ENDPOINT 1.0+ If set, CSI compatibility is enabled. Typically set to unix://var/lib/kubelet/plugins_registry/storageos/csi.sock. Default is unset
NAMESPACE 1.0+ The orchestrator namespace that StorageOS is running in. Used as the location to store encryption keys in. Defaults to storageos
CSI_VERSION 1.1.0+ Added in 1.1.0 to define what version of CSI to use. Can be set to v0 or v1, defaults to v0
PROBE_INTERVAL 1.1.2+ The interval between node probes. Takes a time duration in string format e.g. 500ms or 2s. Setting this lower (more frequent) will cause the cluster to detect failed nodes more quickly at the expense of increased bandwidth usage. Defaults to 1000ms. Added in 1.1.2 replacing PROBE_INTERVAL_MS
PROBE_INTERVAL_MS 1.1.1 The interval in milliseconds between node probes. Setting this lower (more frequent) will cause the cluster to detect failed nodes more quickly at the expense of increased bandwidth usage. Defaults to 1000ms. Added in 1.1.1 and deprecated in 1.1.2 See PROBE_INTERVAL
PROBE_TIMEOUT 1.1.2+ The timeout to wait for an ack from a probed node before assuming it is unhealthy. Takes a time duration in string format e.g. 500ms or 2s. This should be set to 99-percentile of RTT (round-trip time) on your network. Defaults to 3000ms. Added in 1.1.2 replacing PROBE_TIMEOUT_MS
PROBE_TIMEOUT_MS 1.1.1 The timeout to wait for an ack from a probed node before assuming it is unhealthy. This should be set to 99-percentile of RTT (round-trip time) on your network. Defaults to 3000ms. Added in 1.1.1 and deprecated in 1.1.2 See PROBE_TIMEOUT
TLS_ETCD_CA 1.2.0 The file path to the etcd server Certificate Authority certificate. The certificate should be mounted into the container using a Secret. See etcd TLS
TLS_ETCD_CLIENT_CERT 1.2.0 The file path to the etcd server client certificate. The certificate should be mounted into the container using a Secret. See etcd TLS
TLS_ETCD_CLIENT_KEY 1.2.0 The file path to the etcd server client key. The certificate should be mounted into the container using a Secret. See etcd TLS