apache / apache/fluss

[helm] First-class coordinator HA: readiness gate valid for standby coordinators

Open
#4,105 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
2.1k
Forks
625
Avg merge
3d 14h
Merged PRs (30d)
97

Description

### Motivation

The Helm chart exposes `coordinator.numberOfReplicas`, and since 1.0 the coordinator supports HA with standby replicas. However, HA is not first-class in the chart:

- Both the liveness and readiness probes in `helm/templates/sts-coordinator.yaml` are TCP-only (`tcpSocket` on the client listener port). A standby coordinator binds the port, so it reports ready even though readiness for a standby means something different than for the leader.
- There is no coordinator health gate equivalent to the tablet readiness gate.
- Defaults, examples, and docs all assume 1 replica, with no guidance for running more.

### Proposal

1. **Readiness gate valid for standbys.** Replace (or complement) the TCP readiness probe with a check that is meaningful on a standby coordinator. `Admin#getClusterHealth()` (#3399) looks like the natural hook, but it needs verification: what does it report when served by a standby coordinator vs. the leader? If a standby cannot answer it, the probe needs a standby-aware alternative (for example, a local check that the process has joined the coordinator group).
2. **Multi-replica guidance.** Document how to run `coordinator.numberOfReplicas > 1`: recommended `coordinator.podDisruptionBudget` settings (the template already supports `minAvailable`/`maxUnavailable`), rolling-update behavior, and any listener/service implications.

The default should stay at 1 replica; this is about making >1 safe and observable, not changing defaults.

### Affected files

- `helm/templates/sts-coordinator.yaml` (probes)
- `helm/values.yaml` (any new probe/health values)
- `helm/README.md` (multi-replica guidance)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with helm/templates/sts-coordinator.yaml and inspect the existing TCP probes, then read Admin#getClusterHealth() from issue #3399 to verify its behavior on leader and standby coordinators. Review helm/values.yaml and helm/README.md for probe configuration and multi-replica guidance; the work is done when standby readiness is meaningful and replica, disruption-budget, rollout, and listener implications are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.