Skip to content

feat: support bind_all in topology/update-conf and rocksdb store tuning fields in update-conf#435

Merged
thweetkomputer merged 3 commits into
mainfrom
support-bind-all
Jul 7, 2026
Merged

feat: support bind_all in topology/update-conf and rocksdb store tuning fields in update-conf#435
thweetkomputer merged 3 commits into
mainfrom
support-bind-all

Conversation

@thweetkomputer

@thweetkomputer thweetkomputer commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

EloqKV only listens on the node's configured ip unless bind_all is set (the gflags default is false), so eloqctl-deployed nodes were unreachable via any interface other than the deployment address — e.g. 127.0.0.1 refuses connections when a node is deployed with an internal IP. eloqctl had no way to set this key.

Also completes #431: the RocksDB store tuning knobs were configurable via launch YAML but not via update-conf.

Changes

  • Add optional deployment.bind_all topology field (default false, matching the eloqkv built-in default); written to the [local] section of the generated Eloqkv.ini, following the same pattern as enable_io_uring.
  • Add bind_all=${OVERRIDE} to the EloqKv.ini template.
  • Whitelist bind_all for eloqctl update-conf --fields so existing clusters can enable it without redeploying.
  • Whitelist rocksdb_periodic_compaction_seconds and rocksdb_delete_obsolete_files_period_micros for update-conf --fields. EloqKV reads these from the [store] section, but update-conf inserted missing keys into [local] unconditionally — new keys are now routed to the section the field belongs to (created when absent).
  • Ignore the test-generated src/cluster_mgr/upload/ directory.

Testing

  • cargo build / cargo build --release
  • cargo test --lib: all pass (note: test_s3_endpoint_written_to_store_and_txlog_ini is flaky when run in parallel with config::monitor tests — pre-existing env-var race on UPLOAD_PATH_DIR, unrelated to this change; passes in isolation)
  • Manually verified on a local cluster that the generated node ini gets bind_all=false by default and bind_all=true when set in topology

🤖 Generated with Claude Code

thweetkomputer and others added 2 commits July 7, 2026 04:45
EloqKV only listens on the node's configured ip unless bind_all is set,
so eloqctl-deployed nodes were unreachable via any other interface
(e.g. loopback when deployed with an internal IP). Expose bind_all as
an optional deployment field (default false, matching the eloqkv
built-in default) and whitelist it for update-conf --fields.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Whitelist rocksdb_periodic_compaction_seconds and
rocksdb_delete_obsolete_files_period_micros for update-conf --fields.
EloqKV reads these keys from the [store] section, but update-conf
inserted missing keys into [local] unconditionally, so also route new
keys to the section a field belongs to (creating it when absent).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@thweetkomputer thweetkomputer changed the title feat: support bind_all in topology and update-conf feat: support bind_all in topology/update-conf and rocksdb store tuning fields in update-conf Jul 7, 2026
@thweetkomputer thweetkomputer merged commit c0e6bbd into main Jul 7, 2026
3 checks passed
@thweetkomputer thweetkomputer deleted the support-bind-all branch July 7, 2026 06:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants