Skip to content

Support externally managed ClickHouse Keeper clusters #285

Description

@nnozhenko

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:

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureFeature request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions