ClickHouse / ClickHouse/clickhouse-operator

Support externally managed ClickHouse Keeper clusters

Open
#285 0 comments 0 reactions 0 assignees View on GitHub
feature
Dominant language
Go
Stars
292
Forks
42
Avg merge
10h 18m
Merged PRs (30d)
23

Description

### Company or project name

_No response_

### Use case

We want to deploy a `ClickHouseCluster` using an existing, externally managed
ClickHouse Keeper installation.

Currently, `ClickHouseClusterSpec` requires `keeperClusterRef`, which refers to a
`KeeperCluster` Kubernetes resource managed by the operator. This couples the
ClickHouse deployment to an operator-managed Keeper installation.

Keeper may be managed independently, for example:

- by a separate Kubernetes operator;
- in another Kubernetes cluster;
- using VMs or bare-metal servers;
- as a shared coordination service;
- through another infrastructure-management system.

The ClickHouse Operator should manage the ClickHouse resources without assuming
ownership of the Keeper lifecycle.

### Describe the solution you'd like

Allow `ClickHouseCluster` to use either:

1. an operator-managed Keeper cluster through the existing
`keeperClusterRef`; or
2. a list of externally managed Keeper endpoints.

For example, the API could conceptually support:

```yaml
apiVersion: clickhouse.com/v1alpha1
kind: ClickHouseCluster
metadata:
name: example
spec:
replicas: 3
shards: 1

externalKeeper:
nodes:
- host: keeper-1.example.internal
port: 9181
- host: keeper-2.example.internal
port: 9181
- host: keeper-3.example.internal
port: 9181

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading ClickHouseClusterSpec and the existing keeperClusterRef behavior to understand how operator-managed Keeper is selected. Trace how Keeper endpoints reach the ClickHouse resources, then define how externalKeeper nodes coexist with the existing reference. Done means a cluster can use externally managed endpoints without requiring a KeeperCluster resource, while the current managed-Keeper path still works.

Written by the indexing model from the issue text.

Assessment

Tech stack
clickhouse, go, kubernetes
Domain
databases, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.