Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

First-class support (or an officially supported recipe) for multi-Kubernetes / multi-region DR

Open
#2,105 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
18/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Active
Tech stack
go, kubernetes

Research direction

This is a design question, not a code change yet. Start with the recovery-architecture doc linked in the issue and the CHI settings it mentions, zookeeper.nodes and remote_servers, to see what the operator already supports across clusters. A first useful step is a scoping discussion with maintainers on whether a docs and test checklist for two-CHI primary/warm-standby is accepted. Done means an agreed scope, not an implementation.

Written by the indexing model from the issue text.

Description

Summary

We run ClickHouse via clickhouse-operator (currently looking at 0.27.x) and need a clear story for disaster recovery across Kubernetes clusters, often in different regions: primary site + warm standby (or equivalent), with a tested failover path.

Today the operator is excellent inside a single Kubernetes cluster, but multi-site DR still looks like DIY. We’d like this to become a first-class, documented, and tested capability — or at least an explicitly supported topology with a maintained guide tied to operator releases.

What we need

Something teams can rely on in production, for example:

  1. Documented supported topology for primary / warm-standby (or another Altinity-recommended shape) across two Kubernetes clusters / regions, including Keeper placement (voting members vs observers), naming/{replica} rules, and failover / failback steps.
  2. Operator-level help where it makes sense — even if a full “Federated CHI” is a bigger project. Examples: clearer cross-site guidance in-tree, validation/warnings, helpers for remote_servers / macros, or a thin multi-cluster controller later.
  3. Soak / failover testing so this isn’t only a blog/webinar recipe.

We’re fine doing networking ourselves (peering, DNS, service exposure). The gap is knowing what’s supported vs best-effort, and not inventing a one-off design that breaks on the next operator upgrade.

What we already understand (not asking for this)
  • CHI is namespaced and the operator reconciles inside one Kubernetes cluster — that matches what we’ve seen in the CRD and in your materials.
  • Multiple entries in spec.configuration.clusters[] in one CHI are a same-cluster layout, not multi-region DR.
  • A real CHK is one Raft ensemble; we won’t treat extra CHK clusters[] examples as multi-site Keeper HA.
  • Cross-region setups are possible today with two operators/CHIs, shared Keeper via zookeeper.nodes, and a lot of network/DNS work (as in your blog and #1380).

Your DR webinar also called this out directly:

The operator operates within a single Kubernetes cluster, so multi-cluster deployments require something sitting outside the operator itself. […] eBay […] implemented a “Federated ClickHouseInstallation” […] We did not build it yet because the multi-region DR scenario is rare enough that it has not risen to the top of the priority list. But we are totally open to collaborating on it.

We’re essentially asking to raise the priority of that gap (docs + tests first is already valuable; federation later if it makes sense).

References
Ask
  1. Is multi-Kubernetes / multi-region DR on the operator roadmap?
  2. Short of a federated controller, would you accept / help maintain an official in-repo guide + test checklist for the primary/warm-standby pattern with two CHIs?
Dominant language
Go
Stars
2.6k
Forks
579
Avg merge
21h 2m
Merged PRs (30d)
4

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Altinity/clickhouse-operator

All issues in Altinity/clickhouse-operator

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.