This is an automated email from the ASF dual-hosted git repository.

mmodzelewski pushed a commit to branch advertised_ip
in repository https://gitbox.apache.org/repos/asf/iggy.git

commit 0584cf881fd031160ef5f83ea2c6ca0e73f76e67
Merge: 96a90b4f4 40d1e356e
Author: Maciej Modzelewski <[email protected]>
AuthorDate: Mon Jul 27 21:41:04 2026 +0200

    Merge branch 'master' into advertised_ip

 core/common/src/types/identifier/mod.rs            |  16 +-
 core/configs/src/server_ng_config/cluster.rs       |  15 +-
 core/configs/src/server_ng_config/validators.rs    |  80 +++---
 .../tests/sdk/consumer_group_membership.rs         | 102 ++++++++
 core/metadata/src/stm/consumer_group.rs            | 281 ++++++++++++++++++---
 core/metadata/src/stm/result.rs                    |  71 +++++-
 core/metadata/src/stm/snapshot.rs                  |   8 +-
 core/metadata/src/stm/stream.rs                    |  34 ++-
 core/sdk/src/clients/consumer.rs                   |   7 +-
 core/server-ng/config.toml                         |  15 +-
 core/server-ng/src/bootstrap.rs                    | 203 +++++++++++----
 core/server-ng/src/partition_reconciler.rs         |  24 +-
 core/server-ng/src/server_error.rs                 |  10 +-
 .../src/workload/ops/delete_consumer_group.rs      |  34 ++-
 14 files changed, 737 insertions(+), 163 deletions(-)

diff --cc core/server-ng/config.toml
index a4d709f87,2bed5b4b3..67b995f76
--- a/core/server-ng/config.toml
+++ b/core/server-ng/config.toml
@@@ -640,12 -642,12 +642,21 @@@ ca_file = "
  # flag, which selects the entry in this list that describes the current
  # node. All other entries are remote peers.
  #
 -# 'ip' is the address the cluster advertises for the node (cluster metadata,
 -# follower-to-primary HTTP forwarding); it is not the bind interface for
 -# quic/http/websocket, which comes from each transport's own 'address'
 -# setting above. 'ports' is the single source of listener ports in cluster
 -# mode: every enabled transport needs an explicit per-node port, otherwise
 -# the server refuses to start.
++# 'ip' is the node's roster address. Replica-to-replica traffic,
++# follower-to-primary HTTP forwarding, and the TCP listener use it. It is not
++# the bind interface for quic/http/websocket, which comes from each 
transport's
++# own 'address' setting above.
++#
 +# Each node may also set 'advertised_address': the client-facing address
 +# handed out in cluster metadata and leader redirects. Set it when 'ip' is
 +# a private replica-network address unreachable by clients (Docker,
 +# Kubernetes, NAT). Accepts a literal IPv4/IPv6 address or a DNS hostname
 +# (RFC 1123: ASCII letters, digits, '-' and '.'; no port, no trailing dot).
- # Replica-to-replica traffic always uses 'ip'. Unset = clients get 'ip'.
++# When unset, clients receive 'ip'.
++#
++# In cluster mode, 'ports' is the single source of listener ports: every
++# enabled transport needs an explicit per-node port, otherwise the server
++# refuses to start.
  [[cluster.nodes]]
  name = "iggy-node-1"
  ip = "127.0.0.1"
@@@ -662,9 -664,8 +673,9 @@@ ports = { tcp = 8091, quic = 8081, htt
  # [[cluster.nodes]]
  # name = "iggy-node-3"
  # ip = "192.168.1.100"
 +# advertised_address = "iggy-node-3.example.com"
  # replica_id = 2
- # ports = { tcp = 8092, http = 3002, tcp_replica = 9092 }
+ # ports = { tcp = 8092, quic = 8082, http = 3002, websocket = 8094, 
tcp_replica = 9092 }
  
  # Sharding configuration
  [system.sharding]

Reply via email to