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]
