Deployment YAML Reference
This page describes the YAML file used by eloqctl check, eloqctl launch, eloqctl plan, and eloqctl apply.
This YAML defines the deployment shape, storage backend, monitor placement, and host sizing.
Required Deployment Fields
Write these fields explicitly:
deployment.cluster_namedeployment.productdeployment.versiondeployment.install_dirdeployment.enable_waldeployment.enable_io_uringdeployment.enable_tlsdeployment.cluster_modedeployment.hardware
deployment.hardware must contain every host used by tx_host_ports, standby_host_ports, and voter_host_ports.
hardware is keyed by host only. If several EloqKV processes run on one machine, define that host once, not once per port.
Top-Level Shape
connection:
username: "${USER}"
auth_type: "keypair"
auth:
keypair: "/home/${USER}/.ssh/id_rsa"
deployment:
cluster_name: "eloqkv-cluster"
product: "EloqKV"
version: "latest"
install_dir: "/home/${USER}"
enable_wal: false
enable_io_uring: false
enable_tls: false
cluster_mode: false
tx_service:
tx_host_ports: [127.0.0.1:6389]
storage_service:
rocksdb: !LOCAL
hardware:
127.0.0.1:
cpu: 2
memory: 2048
connection
connection.username: SSH username used by the control machine.connection.auth_type: SSH authentication type. Current examples usekeypair.connection.auth.keypair: Private key path on the control machine.connection.ssh_endpoints: Optional mapping from deployment host to the SSH endpoint reachable from the control machine.connection.service_endpoints: Optional mapping from deployment service address to the service endpoint reachable from the control machine.
Use ssh_endpoints and service_endpoints when the control machine cannot reach the deployment hosts or service ports directly, such as in Docker, NAT, or bastion setups.
deployment
deployment.cluster_name: Unique cluster name in localeloqctlstate.deployment.product: Must beEloqKV.deployment.version: EloqKV release version to deploy. Uselatestunless you need a pinned release.deployment.install_dir: Base directory on the target host.deployment.enable_wal: Whether each write is appended to WAL before completion.deployment.enable_io_uring: Whether to use theio_uringI/O path.deployment.enable_tls: Whether to enable TLS for EloqKV client traffic.deployment.cluster_mode:falsefor single-node topology,truefor clustered tx/standby/voter topology.deployment.checkpointer_interval: Checkpoint interval in seconds.deployment.maxclients: Optional Redis client connection limit.deployment.environment_variables: Optional environment variables exported before startup. This is commonly used for cloud credentials.
deployment.tx_service
deployment.tx_service.tx_host_ports: Required list of tx nodehost:portentries.deployment.tx_service.standby_host_ports: Optional standby topology. Use|to separate multiple standbys for one tx node and,to separate different tx groups.deployment.tx_service.voter_host_ports: Optional voter topology using the same grouping rule.deployment.tx_service.requirepass: Optional Redis password.deployment.tx_service.enable_cache_replacement: Whether cold data can be evicted from memory cache.deployment.tx_service.client_port: Optional client-port override.deployment.tx_service.max_standby_lag: Optional standby lag threshold used by failover-related flows.
deployment.log_service
log_service describes where log service runs and where its data is stored. It is separate from the meaning of enable_wal.
deployment.log_service.nodes: Log service node list.deployment.log_service.nodes[].host: Host running one log service process.deployment.log_service.nodes[].port: Log service port.deployment.log_service.nodes[].data_dir: One or more log-service data directories on that host.deployment.log_service.replica: Log replica count.deployment.log_service.bthread_concurrency: Optional log-service concurrency setting.deployment.log_service.aws_access_key_id: Access key for S3-compatible object storage.deployment.log_service.aws_secret_key: Secret key for the same object storage.deployment.log_service.bucket_name: Bucket used by the log service.deployment.log_service.bucket_prefix: Optional object prefix for log data.deployment.log_service.region: Region for AWS-style backends.deployment.log_service.endpoint: Endpoint for MinIO or another S3-compatible service.
deployment.storage_service
Common shapes:
deployment.storage_service.rocksdb: !LOCAL: Embedded local RocksDB.deployment.storage_service.rocksdb: !MINIO: RocksDB Cloud backed by MinIO.deployment.storage_service.rocksdb: !S3: RocksDB Cloud backed by AWS S3 or another S3-compatible service.deployment.storage_service.eloqdss.backend: !eloqstore: EloqStore backend.
RocksDB Cloud Fields
storage_service.rocksdb.aws_access_key_idstorage_service.rocksdb.aws_secret_keystorage_service.rocksdb.bucket_namestorage_service.rocksdb.bucket_prefixstorage_service.rocksdb.endpointstorage_service.rocksdb.regionstorage_service.rocksdb.target_file_size_basestorage_service.rocksdb.sst_file_cache_size
EloqStore Cloud Fields
storage_service.eloqdss.backend.eloq_store_cloud_store_pathstorage_service.eloqdss.backend.eloq_store_cloud_providerstorage_service.eloqdss.backend.eloq_store_cloud_access_keystorage_service.eloqdss.backend.eloq_store_cloud_secret_keystorage_service.eloqdss.backend.eloq_store_cloud_endpointstorage_service.eloqdss.backend.eloq_store_cloud_regionstorage_service.eloqdss.backend.eloq_store_cloud_verify_sslstorage_service.eloqdss.backend.eloq_store_reuse_local_filesstorage_service.eloqdss.backend.eloq_store_prewarm_cloud_cache
deployment.hardware
deployment.hardware.<host>.cpu: Required host CPU count used byeloqctlto derive runtime config.deployment.hardware.<host>.memory: Required host memory in MiB.deployment.hardware.<host>.event_dispatcher_num: Optional explicit dispatcher count.
If multiple EloqKV processes run on the same host with different ports, define that host once in hardware.
deployment.monitor
monitor is optional. Use it when eloqctl should manage Prometheus, Grafana, and node exporter.
deployment.monitor.data_dirdeployment.monitor.eloq_metrics.pathdeployment.monitor.eloq_metrics.portdeployment.monitor.prometheus.hostdeployment.monitor.prometheus.portdeployment.monitor.prometheus.download_urldeployment.monitor.grafana.hostdeployment.monitor.grafana.portdeployment.monitor.grafana.download_urldeployment.monitor.node_exporter.urldeployment.monitor.node_exporter.port
Practical Rules
- Use
cluster_mode: falsefor localhost or single-node examples. - Use
cluster_mode: truefor tx/standby/voter topologies. - Keep
enable_wal,enable_io_uring, andenable_tlsexplicit in every YAML example. - For HA object-storage deployments, configure
storage_serviceandlog_serviceindependently. - Start from the bundled examples under
${ELOQCTL_HOME:-$HOME/.eloqctl}/config/examples/, then edit hostnames, credentials, and object-store settings.