Waiting for input...
Star SPIKE on GitHub

Configuring SPIKE

You can use environment variables to configure the SPIKE components.

The following table lists the environment variables that you can use to configure the SPIKE components:

ComponentEnvironment VariableDescriptionDefault Value
AllSPIFFE_ENDPOINT_SOCKETThe Unix domain socket path used for SPIFFE Workload API"unix:///tmp/spire-agent/public/api.sock"
AllSPIKE_BANNER_ENABLEDWhether to display the SPIKE banner on startup. Set to true to enable.true
AllSPIKE_HTTP_CLIENT_DIALER_KEEP_ALIVEKeep-alive duration for HTTP client’s network dialer connections."30s"
AllSPIKE_HTTP_CLIENT_DIALER_TIMEOUTTimeout for establishing new HTTP client network connections."30s"
AllSPIKE_HTTP_CLIENT_EXPECT_CONTINUE_TIMEOUTTimeout for HTTP client to wait for Expect: 100-continue responses from servers."5s"
AllSPIKE_HTTP_CLIENT_IDLE_CONN_TIMEOUTMaximum duration an idle HTTP connection will remain open before closing."30s"
AllSPIKE_HTTP_CLIENT_MAX_CONNS_PER_HOSTMaximum number of HTTP connections allowed per host.10
AllSPIKE_HTTP_CLIENT_MAX_IDLE_CONNSMaximum number of idle HTTP connections across all hosts.100
AllSPIKE_HTTP_CLIENT_MAX_IDLE_CONNS_PER_HOSTMaximum number of idle HTTP connections per host.10
AllSPIKE_HTTP_CLIENT_RESPONSE_HEADER_TIMEOUTTimeout for HTTP client waiting for server’s response headers."10s"
AllSPIKE_HTTP_CLIENT_TIMEOUTOverall timeout for HTTP client requests (includes connection, request, and response time)."60s"
AllSPIKE_HTTP_CLIENT_TLS_HANDSHAKE_TIMEOUTTimeout for completing TLS handshakes in HTTP client connections."10s"
AllSPIKE_HTTP_SERVER_READ_HEADER_TIMEOUTTimeout for reading HTTP request headers on the server side. Helps prevent slowloris attacks."10s"
AllSPIKE_NEXUS_API_URLThe URL where SPIKE Nexus can be reached"https://localhost:8553"
AllSPIKE_SPIFFE_SOURCE_TIMEOUTTimeout for creating SPIFFE X509Source and fetching initial SVID from Workload API. Prevents indefinite blocking on socket issues."30s"
AllSPIKE_STACK_TRACES_ON_LOG_FATALWhether to print stack traces when log.FatalLn is called. Set to true to enable for development/testing. Disabled by default for production safety.false
AllSPIKE_SYSTEM_LOG_LEVELThe log level for all SPIKE components ("DEBUG", "INFO", "WARN", "ERROR")."WARN"
AllSPIKE_TRUST_ROOTThe SPIFFE trust root used within the SPIKE trust boundary. Can be a single entry, or a comma-delimited list of suitable trust roots."spike.ist"
AllSPIKE_TRUST_ROOT_BOOTSTRAPThe SPIFFE trust root used for SPIKE Bootstrap. Can be a single entry, or a comma-delimited list of suitable trust roots."spike.ist"
AllSPIKE_TRUST_ROOT_KEEPERThe SPIFFE trust root used for SPIKE Keeper instances. Can be a single entry, or a comma-delimited list of suitable trust roots."spike.ist"
AllSPIKE_TRUST_ROOT_LITE_WORKLOADThe SPIFFE trust root used for lite workload instances. Can be a single entry, or a comma-delimited list of suitable trust roots."spike.ist"
AllSPIKE_TRUST_ROOT_NEXUSThe SPIFFE trust root used for SPIKE Nexus instances. Can be a single entry, or a comma-delimited list of suitable trust roots."spike.ist"
AllSPIKE_TRUST_ROOT_PILOTThe SPIFFE trust root used for SPIKE Pilot instances. Can be a single entry, or a comma-delimited list of suitable trust roots."spike.ist"
SPIKE BootstrapSPIKE_BOOTSTRAP_FORCEWhether to force SPIKE Bootstrap to run even if the system has already bootstrapped before.false
SPIKE KeeperSPIKE_KEEPER_TLS_PORTThe TLS port the current SPIKE Keeper instance listens on.":8443"
SPIKE NexusSPIKE_NEXUS_BACKEND_STOREThe backend store SPIKE Nexus uses to store secrets (memory, lite, sqlite)."sqlite"
SPIKE NexusSPIKE_NEXUS_CRYPTO_MAX_CIPHERTEXT_SIZEThe maximum allowed ciphertext size in bytes for encryption operations.65536
SPIKE NexusSPIKE_NEXUS_DATA_DIRCustom directory for Nexus data storage. Falls back to ~/.spike/data or /tmp/.spike-$USER/data.~/.spike/data
SPIKE NexusSPIKE_NEXUS_DB_BUSY_TIMEOUT_MSThe timeout for the database to wait for a lock.1000
SPIKE NexusSPIKE_NEXUS_DB_CONN_MAX_LIFETIMEThe maximum lifetime of a database connection."1h"
SPIKE NexusSPIKE_NEXUS_DB_INITIALIZATION_TIMEOUTThe maximum initialization time for SPIKE Nexus DB before bailing out30s
SPIKE NexusSPIKE_NEXUS_DB_JOURNAL_MODEThe journal mode for the SQLite database."WAL"
SPIKE NexusSPIKE_NEXUS_DB_MAX_IDLE_CONNSThe maximum number of idle connections to the database.5
SPIKE NexusSPIKE_NEXUS_DB_MAX_OPEN_CONNSThe maximum number of open connections to the database.10
SPIKE NexusSPIKE_NEXUS_DB_OPERATION_TIMEOUTThe timeout for database operations."15s"
SPIKE NexusSPIKE_NEXUS_DB_SKIP_SCHEMA_CREATIONIf set to true, skip creating SPIKE Nexus backing store. When set to true, the operator will manually have to create the initial backing store.false
SPIKE NexusSPIKE_NEXUS_KEEPER_PEERSA mapping that contains a comma-delimited list of URLs for all SPIKE Keepers that SPIKE Nexus knows about.“” (check ./hack/bare-metal/startup/start-nexus.sh for usage examples.
SPIKE NexusSPIKE_NEXUS_KEEPER_UPDATE_INTERVALThe duration between SPIKE Nexus updates SPIKE Keepers with the relevant shard information.5m
SPIKE NexusSPIKE_NEXUS_MAX_SECRET_VERSIONSThe maximum number of versions of a secret that SPIKE Nexus stores.10
SPIKE NexusSPIKE_NEXUS_PBKDF2_ITERATION_COUNTThe number of iterations for the PBKDF2 key derivation function.600000
SPIKE NexusSPIKE_NEXUS_RECOVERY_MAX_INTERVALMaximum interval between retries the recovery operation’s backing off algorithm60s
SPIKE NexusSPIKE_NEXUS_SHAMIR_MAX_SHARE_COUNTThe maximum allowed number of shares in Shamir’s Secret Sharing. Also limits the maximum number of SPIKE Keeper instances a deployment can support.1000
SPIKE NexusSPIKE_NEXUS_SHAMIR_SHARESThe total number of shares used for secret sharding, this should be equal to the number of SPIKE Keepers too.3
SPIKE NexusSPIKE_NEXUS_SHAMIR_THRESHOLDThe minimum number of shares to be able to reconstruct the root key.2
SPIKE NexusSPIKE_NEXUS_TLS_PORTThe TLS port SPIKE Nexus listens on.":8553"
SPIKE PilotSPIKE_PILOT_RECOVERY_DIRCustom directory for Pilot recovery shards. Falls back to ~/.spike/recover or /tmp/.spike-$USER/recover.""
SPIKE PilotSPIKE_PILOT_SHOW_MEMORY_WARNINGWhether to show a warning when the system cannot lock memory for security.false

We’ll add more configuration options in the future. Stay tuned.