Skip to main content
Version: 3.0.0

Annotations, Labels & Ports

This is a reference for the Kubernetes annotations and labels Cosmopilot sets on the resources it manages, and for the ports used by nodes and their sidecars. It is useful for inspecting operator state, writing selectors, and configuring monitoring or network policies.

Annotations

All Cosmopilot annotations use the cosmopilot.voluzi.com/ prefix. They are managed by the operator and should be treated as read-only, except for the explicit snapshot-export cleanup acknowledgement described below.

AnnotationSet onMeaning
cosmopilot.voluzi.com/state-sync-trust-heightNodeTrusted block height used for state-sync.
cosmopilot.voluzi.com/state-sync-trust-hashNodeTrusted block hash used for state-sync.
cosmopilot.voluzi.com/data-heightNode / PVCBlock height of the data currently on disk.
cosmopilot.voluzi.com/data-initializedNodeMarks that the data volume has been initialized.
cosmopilot.voluzi.com/genesis-downloadedNodeMarks that the genesis file has been retrieved.
cosmopilot.voluzi.com/vault-key-uploadedNodeMarks that the consensus key has been uploaded to Vault.
cosmopilot.voluzi.com/config-hashPodHash of the rendered configuration; a change triggers a controlled Pod restart.
cosmopilot.voluzi.com/pod-spec-hashPodHash of the desired Pod spec, used to detect drift.
cosmopilot.voluzi.com/snapshotting-pvcNodeA PVC snapshot is currently in progress.
cosmopilot.voluzi.com/last-pvc-snapshotNodeTimestamp/reference of the last PVC snapshot.
cosmopilot.voluzi.com/snapshot-readyVolumeSnapshotThe snapshot is ready to use.
cosmopilot.voluzi.com/snapshot-retentionVolumeSnapshotRetention marker for the snapshot.
cosmopilot.voluzi.com/snapshot-integrity-statusVolumeSnapshotResult of the snapshot integrity check.
cosmopilot.voluzi.com/exporting-tarballNodeA snapshot tarball export is in progress.
cosmopilot.voluzi.com/acknowledge-snapshot-export-cleanupNodeComma-separated cleanup IDs from .status.snapshotExports. Setting an ID explicitly acknowledges that operator cleanup cannot be proven and allows the associated snapshot lifecycle to continue. The controller removes processed IDs after persisting the acknowledgement in status.
cosmopilot.voluzi.com/vpa-resourcesPodResources currently applied by the vertical autoscaling logic.
cosmopilot.voluzi.com/last-cpu-scalePodTimestamp of the last CPU scaling action.
cosmopilot.voluzi.com/last-memory-scalePodTimestamp of the last memory scaling action.
cosmopilot.voluzi.com/oom-recovery-historyPodHistory used to recover from out-of-memory events.
cosmopilot.voluzi.com/resource-classGenerated PVC / SecretDeletion-policy class: dataVolumes, generatedKeys, or cosmosignerState.
cosmopilot.voluzi.com/resource-owner-uidGenerated PVC / SecretImmediate child ChainNode UID, used while a ChainNodeSet child performs its own cleanup.
cosmopilot.voluzi.com/root-owner-api-versionGenerated PVC / SecretAPI version of the stable ChainNode or ChainNodeSet deletion-policy root.
cosmopilot.voluzi.com/root-owner-kindGenerated PVC / SecretKind of the stable deletion-policy root.
cosmopilot.voluzi.com/root-owner-nameGenerated PVC / SecretName of the stable deletion-policy root.
cosmopilot.voluzi.com/root-owner-namespaceGenerated PVC / SecretNamespace of the stable deletion-policy root.
cosmopilot.voluzi.com/root-owner-uidGenerated PVC / SecretUID that prevents a same-name recreated root from claiming retained resources automatically.

Snapshot destinations and authentication references are recorded in ChainNode.status.snapshotExports, not on VolumeSnapshot metadata. If a referenced Secret or ServiceAccount is removed before deletion, the controller retains the record and sets the SnapshotExportCleanup condition. Restore the named reference to resume automatic cleanup. Only use the acknowledgement annotation after manually verifying or deleting the object named by that status record.

Standard Kubernetes annotations

Cosmopilot also relies on a couple of well-known Kubernetes annotations:

AnnotationMeaning
cluster-autoscaler.kubernetes.io/safe-to-evictControls whether the cluster autoscaler may evict a node Pod. The operator manages this to avoid disrupting nodes at the wrong time.
statefulset.kubernetes.io/pod-nameStandard pod-name label/annotation used when binding storage.

Labels

Cosmopilot applies these labels to Pods, Services and other resources. They are useful for kubectl selectors, monitoring selectors and network policies. Labels you set on a ChainNode are also propagated to its Service.

LabelValueMeaning
node-idstringThe node's Tendermint/CometBFT node ID.
chain-idstringThe chain ID the node belongs to.
chain-nodestringName of the owning ChainNode.
nodesetstringName of the owning ChainNodeSet (when applicable).
groupstringGroup name within a ChainNodeSet.
validatortrue / falseWhether the node is a validator.
seedtrue / falseWhether the node is a seed.
peertrue / falseWhether the node participates as a peer.
scopestringResource scope marker used by the operator.
appstringApplication label.
global-ingressstringMarks resources belonging to a global ingress.
upgradingtruePresent on a Pod while it is being upgraded.
worker-namestringWhich operator worker owns this resource (for sharding).

Ports

Node ports

These ports are exposed on the node Pod and its Service.

Port namePortDescription
p2p26656CometBFT peer-to-peer.
rpc26657CometBFT RPC.
lcd1317Cosmos SDK REST (LCD) API.
grpc9090Cosmos SDK gRPC.
prometheus26660Node Prometheus metrics (see Monitoring).
privvalidator26659Private validator listen address.
node-utils8000Internal node-utils sidecar API (operator use only).

For EVM-enabled chains, the following are added:

Port namePortDescription
evm-rpc8545EVM JSON-RPC.
evm-rpc-ws8546EVM JSON-RPC over WebSocket.

CosmoGuard ports

When CosmoGuard is enabled, a standalone CosmoGuard Deployment fronts the node's APIs. Its container and <name>-cg Service listen on these ports (the group/global Services keep the public port numbers and target these):

Port namePortFronts
fw-rpc16657RPC.
fw-lcd11317LCD.
fw-grpc19090gRPC.
fw-evm-rpc18545EVM RPC.
fw-evm-rpc-ws18546EVM RPC WebSocket.
fw-metrics9001CosmoGuard's own metrics.

Manager ports

PortDescription
8080Operator metrics.
8081Health (/healthz) and readiness (/readyz) probes.
9443Admission webhook server.