numinnex opened a new pull request, #4035:
URL: https://github.com/apache/iggy/pull/4035

   The chart predates server-ng and only ever described a single node. Cluster
   mode had no representation in it at all, and `server.replicaCount: 3` looked
   like the way to ask for one: it produced three independent servers behind one
   Service, sharing a single PVC subpath with no lock between them, corrupting 
the
   data directory while `helm --wait` reported success.
   
   Cluster mode now has a home. `server.cluster` mirrors the server's
   `[[cluster.nodes]]` config one for one and renders into `IGGY_CLUSTER_*`
   environment variables plus `--replica-id`, so no config file is mounted. Each
   node is its own release sharing the same roster and overriding only
   `selfReplicaId`, with `examples/cluster-3-node.yaml` as a starting point.
   Roster mistakes fail at render instead of after the pod is scheduled.
   
   Two constraints come from the server rather than from taste, and both are
   documented. The consensus listener binds `cluster.nodes[*].ip` verbatim, 
while
   client listeners keep their own bind address and take only the port, so a pod
   must own the address its roster entry names: that means `hostNetwork` with 
each
   release pinned to a node. Host ports in turn make a rolling update 
impossible,
   since the replacement pod cannot bind ports the outgoing pod still holds, so 
the
   server switches to `Recreate` whenever `hostNetwork` is set.
   
   `server.replicaCount > 1` and `autoscaling.enabled` are now refused at render
   time. This leaves `hpa.yaml` unreachable, since an HPA can only target the
   Deployment that is refused; the template is left in place for a follow-up to
   remove. The validate scenarios that exercised autoscaling were dropped, which
   also drops the `autoscaling/v2beta2` API-selection coverage along with the
   feature that needed it, and scenarios asserting each guard now take their 
place.
   
   Along the way: QUIC was published as TCP and so was unreachable through the
   Service, WebSocket had no port at all, Kubernetes service links were 
injecting
   `IGGY_*` variables into the server's own config namespace, and a stray suffix
   landed on whichever UI label rendered last. The default image moves off 
0.7.0,
   which predates server-ng, so the CI smoke path exercises the current server 
for
   the first time.
   
   Trim the last two paragraphs if you want it shorter; the first three carry 
the substance.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to