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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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