Skip to main content
Version: 3.0.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/cosmoguard:4.0.3CosmoGuard image for the standalone deployments created when CosmoGuard is 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>
dataexporter s3 upload <dir> <bucket> <name>
dataexporter s3 delete <bucket> <name>

Persistent flag (all subcommands):

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

gcs upload

FlagEnvironment variableDefaultDescription
--compressionCOMPRESSIONgzipArchive compression: none, gzip, zstd, or lz4.
--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.

s3

The AWS SDK default credential chain supports environment variables, shared AWS configuration, web identity tokens such as IRSA, EKS Pod Identity, and EC2 instance roles.

FlagEnvironment variableDefaultDescription
--regionAWS_REGION / AWS_DEFAULT_REGIONemptyAWS region used to sign requests.
--endpointS3_ENDPOINTemptyCustom S3-compatible endpoint URL.
--force-path-styleS3_FORCE_PATH_STYLEfalseUse path-style bucket addressing.

The s3 upload flags match gcs upload, except its default --chunk-size is 64MB. The s3 delete command supports --concurrent-jobs.

vault-token-renewer (deprecated)

This deprecated sidecar keeps a HashiCorp Vault token renewed for legacy TMKMS configurations when autoRenewToken is enabled. It remains available during the TMKMS deprecation period for compatibility and should not be used by new deployments. Migrate to Cosmosigner, which manages Vault token renewal internally. You do not run or configure the sidecar manually.