Develop a ClickHouse Service
## Goal
There is a [growing need to](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1632) develop an easy-to-use solution that internal teams can easily leverage and manage ClickHouse instances.
The aim is to have a single, automated, resilient way of deploying and managing ClickHouse in a single place that is "on by default" in GitLab deployments. Consumers (those that need the database, i.e. Opstrace, ErrorTracking, etc) can request a DB instance through an authenticated API and receive a connection endpoint.
## Iterations
### Iteration 1, ending April 22
- [Implement ClickHouse operator, use in Opstrace Controller](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1643) :white_check_mark:
- [Clickhouse Production readiness review](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1644) :white_check_mark:
### Iteration 2, ending May 6
- [Design a v1alpha1 CRD for requesting a ClickHouse backend.](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1649) :white_check_mark:
- [Clickhouse is installed by default in GDK](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1650) :white_check_mark:
### Iteration 3, ending May 20
- [Reconcile CR by creating/updating/deleting ClickHouse instances/databases](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1648) :white_check_mark:
- [Update CR status and use Kubernetes events recorder to provide useful information on reconciliation progress/errors](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1647) :white_check_mark:
- [Deploy CHProxy as part of each CR to enforce limits and access control (basic auth)](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1646) :white_check_mark:
### Iteration 4, ending June 3
- [Ensure End-to-end test pipeline in CI for ClickHouse Service](https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/1645) :white_check_mark:
epic