Skip to main content
Version: 5.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_IMAGEPinned manager-release defaultnode-utils image deployed as a sidecar with each node.
-cosmoguard-imageCOSMOGUARD_IMAGEPinned manager-release defaultCosmoGuard image for the standalone deployments created when CosmoGuard is enabled.
-cosmoseed-imageCOSMOSEED_IMAGEPinned manager-release defaultImage used for Cosmoseed deployments when enabled.
-cosmosigner-imageCOSMOSIGNER_IMAGEPinned manager-release defaultDefault image for managed Cosmosigner deployments; a per-resource image overrides it.
-dataexporter-imageDATA_EXPORTER_IMAGEPinned manager-release defaultData exporter image used by snapshot upload and deletion Jobs.
-utility-imageUTILITY_IMAGEPinned manager-release defaultUtility image used by operator-owned helper containers.
-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. Companion image variables are emitted only for nonempty Helm values; empty values inherit the pinned defaults from the selected manager release.

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.
-log-levelLOG_LEVELinfoLog level.
-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 wait-for-signer​

The operator runs this command as a target node's final init container:

node-utils wait-for-signer <port> <discovery-hostname> <pod-ip> <timeout>

It listens on the privval port until a connection sends at least one byte, closes the connection, and exits so the app can bind the same port. Bare TCP connections do not release the gate. The operator supplies port 26659 and timeout 25s; DNS observations accompany timeout errors.

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.