Clickhouse Operator Plugin Architecture
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Domain
- backend-api-design, devops, infrastructure
Research direction
Start by reviewing the operator's current architecture and the proposed Kubernetes Service labels and annotations for plugin discovery. Define the COP-I gRPC contract, plugin deployment and discovery boundaries, and how backup or resharding plugins would integrate. Done means the architecture and interface are specified well enough to guide independent plugin implementations.
Written by the indexing model from the issue text.
Description
Introduction
- As the ClickHouse Operator matures, its codebase continues to grow—introducing complexity and slowing the delivery of new features like backup/restore, shard rebalancing and other critical capabilities.
- To address this, we propose introducing a plugin-based architecture—similar to CloudNativePG’s CNPG-I—enabling independent extensions to the operator through a well-defined interface.
- This approach allows the ClickHouse Operator to remain lightweight and focused, while empowering the community to innovate and extend functionality via external, modular plugins.
Goals
- Introduce a modular and extensible approach to integrate plugins with the Altinity Clickhouse operator, enabling greater flexibility and ease of feature development in the Clickhouse Operator ecosystem.
- Define a gRPC-based protocol that defines a standardized interface, named ClickhouseOperatorPlugin-Interface(COP-I), between the Altinity operator and external plugins.
- Empower developers and organizations to extend the operator's functionality without the need to fork its codebase.
Key Benefits
- Reduced Core Complexity: Offload auxiliary responsibilities—like backup orchestration or rebalancing logic—to external plugins, keeping the core operator clean and maintainable.
- Accelerated Feature Development: Enable faster delivery of features by allowing parallel plugin development without needing changes to the main operator.
- Standardized Plugin Interface: Define a gRPC API contract for plugins, enabling safe and consistent integration.
- Ecosystem Growth: Encourage external contributions by making it easier to build and share plugins, avoiding forks and duplication.
- Customization Without Forking: Support advanced user needs (e.g., custom backup tools) via pluggable extensions.
Use Cases for Plugins
- A modular ClickHouse Operator architecture would support plugins for: Backup and Restore (e.g., to S3)
- Shard Rebalancing and Resharding Strategies
- Cluster Lifecycle Hooks (pre/post scale, failover events)
- Integration with External Systems
Plugin Architecture
- The operator provides a gRPC service interface for all auxiliary features (e.g., backup, re-sharding).
- Each plugin implements the gRPC service for a specific feature.
- The plugin will be deployed separately from the operator
- The operator will discover the plugin using labels and annotations of the plugin’s K8s service
Block Diagram
The above diagram illustrates two plugins:
- Backup Plugin – Executes SQL commands on the ClickHouse cluster to back up data to S3.
- Resharding/Rebalance Plugin – Redistributes data across the ClickHouse cluster for load balancing.
- Dominant language
- Go
- Stars
- 2.6k
- Forks
- 579
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 5
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Altinity/clickhouse-operator
-
Counter metrics are missing the conventional _total suffixPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Altinity/clickhouse-operator#2093 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 12/100
Altinity/clickhouse-operator#2107 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Altinity/clickhouse-operator#2106 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 18/100
Altinity/clickhouse-operator#2105 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Altinity/clickhouse-operator#2098 ·
Maintainers usually reply within 1 day
All issues in Altinity/clickhouse-operator
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
BurntSushi/toml#530 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
Maintainers usually reply within 1 day
-
clawsweeper:fix-shape-clear clawsweeper:queueable-fix clawsweeper:source-repro impact:session-state issue-rating: 🦞 diamond lobster no-stale P2
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
openclaw/wacli#503 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
[Bug] rmqctl error diagnostics emit terminal control charactersPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 81/100
apache/rocketmq-dashboard#6895 ·
Maintainers usually reply within 3 days