Introduce Theodolite Kubernetes Operator
The operator is started along with all required dependencies. It is running in the background an checks for (or is notified on) new theodolite benchmark resources added to Kubernetes. Such a benchmark resource contains (among others):
- What benchmark/use case to execute
- Configuration of Theodolite
- Resource amounts to be tested
- Potentially, not only replicas, but also e.g. threads should be scalable
- Work loads to be tested (see also load generator configuration)
- Search strategies to be used
- lag experiment configuration (e.g., number of repetitions, duration)
- Resource amounts to be tested
- Configuration of the SUT, this includes:
- Configuration of the stream processing engine (e.g., commit interval)
- Configuration of the application (e.g., (application-)log level)
- Configuration of the execution environment (e.g., CPU and memory per pod)
- Configuration of the messaging system (e.g., number of partitions, replication factors etc.)
- Configuration of the load generator
When receiving such a benchmark, the operator start a scalability benchmark as it is already the case with our theodolite.py
script.
The operator should be installed with a Theodolite Helm chart, once #76 (closed) is implemented.