Skip to main content
Version: 2.3.0

CLI & Environment Variables

Cosmopilot ships several binaries. In normal operation you only interact with the manager (through its Helm values) — the other binaries run automatically inside the Pods the operator creates. This page documents every command, flag and environment variable for completeness and for advanced/debugging scenarios.

tip

Most users never set these directly. The Helm chart maps the relevant manager settings to friendly values — see Configuration.

Each flag has an equivalent environment variable. When both are set, the flag wins.

manager​

The operator process. It runs the ChainNode and ChainNodeSet controllers and the admission webhook server.

FlagEnvironment variableDefaultDescription
-metrics-bind-addressMETRICS_BIND_ADDRESS:8080Address the metrics endpoint binds to.
-health-probe-bind-addressHEALTH_PROBE_BIND_ADDRESS:8081Address the health/readiness probe endpoint binds to.
-enable-leader-electionENABLE_LEADER_ELECTIONfalseEnable leader election so only one manager is active at a time.
-nodeutils-imageNODE_UTILS_IMAGEghcr.io/voluzi/node-utilsnode-utils image deployed as a sidecar with each node.
-cosmoguard-imageCOSMOGUARD_IMAGEghcr.io/voluzi/cosmoguardCosmoGuard image deployed with nodes when enabled.
-cosmoseed-imageCOSMOSEED_IMAGEghcr.io/voluzi/cosmoseedImage used for Cosmoseed deployments when enabled.
-worker-nameWORKER_NAME""Name of this worker (set as the worker-name label). Used to shard which resources this instance reconciles.
-worker-countWORKER_COUNT1Maximum number of concurrent reconciles.
-disable-webhooksDISABLE_WEBHOOKSfalseDisable admission webhooks.
-debug-modeDEBUG_MODEfalseEnable verbose, development-style logging.
-certs-dirCERTS_DIR""Directory where the manager looks for webhook serving certificates.
-release-nameRELEASE_NAMEcosmopilotHelm release name; used to resolve the PriorityClass names assigned to Pods.
-disruption-checks-enabledDISRUPTION_CHECKS_ENABLEDtrueEnable Pod disruption checks.
-disruption-max-unavailableDISRUPTION_MAX_UNAVAILABLE1Maximum number of unavailable Pods sharing the same labels.

Fixed (not configurable) endpoints:

  • Webhook server: port 9443.
  • Leader election ID: <release-name>.cosmopilot.voluzi.com, or <worker-name>.<release-name>.cosmopilot.voluzi.com when worker-name is set.
note

When installed via Helm, the chart sets ENABLE_LEADER_ELECTION=true and maps workerCount (default 10 in the chart), workerName, webHooksEnabled, debugMode and disruptionChecksEnabled to the corresponding variables.

node-utils​

The helper sidecar that runs in every node Pod and exposes an internal HTTP API (default port 8000) used by the operator. You generally never run this yourself.

FlagEnvironment variableDefaultDescription
-hostHOST0.0.0.0Host the server listens on.
-portPORT8000Port the server listens on.
-data-dirDATA_DIR/home/app/dataDirectory where the data volume is mounted.
-block-thresholdBLOCK_THRESHOLD0 (disabled)Time to wait for a new block before the node is considered unhealthy.
-upgrades-configUPGRADES_CONFIG/config/upgrades.jsonFile containing the upgrades configuration.
-trace-storeTRACE_STORE/trace/trace.fifoFile or FIFO watched for traces.
-log-levelLOG_LEVELinfoLog level.
-create-fifoCREATE_FIFOfalseCreate the FIFO for the trace store.
-tmkms-proxyTMKMS_PROXYfalseEnable the TMKMS proxy.
-node-binary-nameNODE_BINARY_NAME""Name of the node application binary.
-halt-heightHALT_HEIGHT0 (disabled)Height at which the node will be halted.
-mock-modeMOCK_MODEfalseEnable mock mode (returns configurable stats instead of real process stats). For E2E testing only.

node-utils mock​

Helper subcommands used by E2E tests to drive a sidecar running in mock mode (via kubectl exec). They talk to the local server on PORT (default 8000).

node-utils mock set-cpu <millicores> # e.g. 500 for 500m
node-utils mock set-memory <mib> # e.g. 512 for 512 MiB
node-utils mock get # print current mock stats

dataexporter​

CLI tool for uploading and deleting snapshot tarballs in external storage. The operator invokes it automatically when exporting snapshots; the reference below is for manual or debugging use.

dataexporter gcs upload <dir> <bucket> <name>
dataexporter gcs delete <bucket> <name>

Persistent flag (all subcommands):

FlagEnvironment variableDefaultDescription
--log-levelLOG_LEVELinfoLog level: debug, info, warn, error, fatal, panic.

gcs upload​

FlagEnvironment variableDefaultDescription
--chunk-sizeCHUNK_SIZE250MBChunk size for multi-part uploads.
--part-sizePART_SIZE500GBPart size for multi-part uploads (used when the size limit is crossed).
--size-limitSIZE_LIMIT5TBSize limit for a single file.
--report-periodREPORT_PERIOD1sHow often upload progress is reported.
--concurrent-jobsCONCURRENT_JOBS10Number of concurrent upload jobs.
--buffer-sizeBUFFER_SIZE32MBUpload buffer size.

gcs delete​

FlagEnvironment variableDefaultDescription
--concurrent-jobsCONCURRENT_JOBS10Number of concurrent delete jobs.

vault-token-renewer​

A small sidecar that keeps a HashiCorp Vault token renewed when TMKMS is backed by Vault with a non-root (expiring) token. It is configured entirely through the standard Vault environment variables and is wired up automatically by the operator when you enable autoRenewToken — see TMKMS. You do not run or configure it manually.