diff --git a/helm/README.md b/helm/README.md index 078c9c9a2b3f896d5cf5a30e7c2540a36f8057e4..1a3428b5e601de0c6c33f9dab236321e95592c6c 100644 --- a/helm/README.md +++ b/helm/README.md @@ -2,55 +2,47 @@ ## Installation -Install the chart via: +The Theodolite Helm chart with all its dependencies can be installed via: ```sh helm dependencies update . helm install theodolite . ``` -This chart installs requirements to execute benchmarks with Theodolite. +## Customize Installation -Dependencies and subcharts: +As usual, the installation with Helm can be configured by passing a values YAML file: -- Prometheus Operator -- Prometheus -- Grafana (incl. dashboard and data source configuration) -- Kafka -- Zookeeper -- A Kafka client pod - -## Test - -Test the installation: - -```sh -helm test theodolite +``` +helm install theodolite . -f <your-config.yaml> ``` -Our test files are located [here](templates/../../theodolite-chart/templates/tests). Many subcharts have their own tests, these are also executed and are placed in the respective /templates folders. - -Please note: If a test fails, Helm will stop testing. +We provide a minimal configuration, especially suited for development environments, with the `preconfigs/minimal.yaml` +file. -It is possible that the tests are not running successfully at the moment. This is because the Helm tests of the subchart cp-confluent receive a timeout exception. There is an [issue](https://github.com/confluentinc/cp-helm-charts/issues/318) for this problem on GitHub. +Per default, Helm installs the Theodolite CRDs used for the operator. If Theodolite will not be used as operator or if +the CRDs are already installed, you can skip their installation by adding the flag `--skip-crds`. -## Configuration +## Test Installation -In development environments Kubernetes resources are often low. To reduce resource consumption, we provide an `one-broker-value.yaml` file. This file can be used with: +Test the installation with: ```sh -helm install theodolite . -f preconfigs/one-broker-values.yaml +helm test theodolite ``` +Our test files are located [here](templates/tests). Many subcharts have their own tests, which are also executed. +Please note: If a test fails, Helm will stop testing. + ## Uninstall this Chart -To uninstall/delete the `theodolite` deployment (by default Helm will be install all CRDs (`execution` and `benchmark`) automatically. If Helm should not install these CRDs, use the flag `--skip-crds`) +The Theodolite Helm can easily be removed with: ```sh helm uninstall theodolite ``` -This command does not remove the CRDs which are created by this chart. Remove them manually with: +Helm does not remove any CRDs created by this chart. You can remove them manually with: ```sh # CRDs from Theodolite @@ -69,9 +61,20 @@ kubectl delete crd thanosrulers.monitoring.coreos.com ## Development -**Hints**: +### Dependencies + +The following 3rd party charts are used by Theodolite: + +- Kube Prometheus Stack (to install the Prometheus Operator, which is used to create a Prometheus instances) +- Grafana (including a dashboard and a data source configuration) +- Confluent Platform (for Kafka and Zookeeper) +- Kafka Lag Exporter (used to collect monitoring data of the Kafka lag) + +### Hints + +#### Grafana -- Grafana configuration: Grafana ConfigMaps contains expressions like {{ topic }}. Helm uses the same syntax for template function. More information [here](https://github.com/helm/helm/issues/2798) +Grafana ConfigMaps contain expressions like `{{ topic }}`. Helm uses the same syntax for template function. More information [here](https://github.com/helm/helm/issues/2798) - Escape braces: {{ "{{" topic }} - Let Helm render the template as raw string: {{ `{{ <config>}}` }} \ No newline at end of file diff --git a/helm/preconfigs/minimal.yaml b/helm/preconfigs/minimal.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c11b7ad0d3d9a76ab3d1e46184ad4f33bd2accb6 --- /dev/null +++ b/helm/preconfigs/minimal.yaml @@ -0,0 +1,8 @@ +cp-helm-charts: + cp-zookeeper: + servers: 1 + + cp-kafka: + brokers: 1 + configurationOverrides: + offsets.topic.replication.factor: "1" diff --git a/helm/preconfigs/one-broker-values.yaml b/helm/preconfigs/one-broker-values.yaml deleted file mode 100644 index c53c1f1eb8bc7a17f192d70a6f10f8cacc09c98f..0000000000000000000000000000000000000000 --- a/helm/preconfigs/one-broker-values.yaml +++ /dev/null @@ -1,15 +0,0 @@ -cp-helm-charts: - ## ------------------------------------------------------ - ## Zookeeper - ## ------------------------------------------------------ - cp-zookeeper: - servers: 1 # default: 3 - - ## ------------------------------------------------------ - ## Kafka - ## ------------------------------------------------------ - cp-kafka: - brokers: 1 # default: 10 - - configurationOverrides: - offsets.topic.replication.factor: "1" \ No newline at end of file