ClickHouse / ClickHouse/clickhouse-operator
Support externally managed ClickHouse Keeper clusters
- 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