diff --git a/docs/crd-benchmark-doc.md b/docs/crd-benchmark-doc.md
new file mode 100644
index 0000000000000000000000000000000000000000..1e12d6ebd776b11d76241cfb530daeba9e0b5c24
--- /dev/null
+++ b/docs/crd-benchmark-doc.md
@@ -0,0 +1,374 @@
+# API Reference
+
+Packages:
+
+- [theodolite.com/v1](#theodolitecomv1)
+
+# theodolite.com/v1
+
+Resource Types:
+
+- [benchmark](#benchmark)
+
+
+
+
+## benchmark
+<sup><sup>[↩ Parent](#theodolitecomv1 )</sup></sup>
+
+
+
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+      <td><b>apiVersion</b></td>
+      <td>string</td>
+      <td>theodolite.com/v1</td>
+      <td>true</td>
+      </tr>
+      <tr>
+      <td><b>kind</b></td>
+      <td>string</td>
+      <td>benchmark</td>
+      <td>true</td>
+      </tr>
+      <tr>
+      <td><b><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#objectmeta-v1-meta">metadata</a></b></td>
+      <td>object</td>
+      <td>Refer to the Kubernetes API documentation for the fields of the `metadata` field.</td>
+      <td>true</td>
+      </tr><tr>
+        <td><b><a href="#benchmarkspec">spec</a></b></td>
+        <td>object</td>
+        <td>
+          <br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### benchmark.spec
+<sup><sup>[↩ Parent](#benchmark)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>name</b></td>
+        <td>string</td>
+        <td>
+          This field exists only for technical reasons and should not be set by the user. The value of the field will be overwritten.<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>appResource</b></td>
+        <td>[]string</td>
+        <td>
+          A list of file names that reference Kubernetes resources that are deployed on the cluster for the system under test (SUT).<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#benchmarkspeckafkaconfig">kafkaConfig</a></b></td>
+        <td>object</td>
+        <td>
+          Contains the Kafka configuration.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>loadGenResource</b></td>
+        <td>[]string</td>
+        <td>
+          A list of file names that reference Kubernetes resources that are deployed on the cluster for the load generator.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#benchmarkspecloadtypesindex">loadTypes</a></b></td>
+        <td>[]object</td>
+        <td>
+          A list of load types that can be scaled for this benchmark. For each load type the concrete values are defined in the execution object.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#benchmarkspecresourcetypesindex">resourceTypes</a></b></td>
+        <td>[]object</td>
+        <td>
+          A list of resource types that can be scaled for this `benchmark` resource. For each resource type the concrete values are defined in the `execution` object.<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### benchmark.spec.kafkaConfig
+<sup><sup>[↩ Parent](#benchmarkspec)</sup></sup>
+
+
+
+Contains the Kafka configuration.
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>bootstrapServer</b></td>
+        <td>string</td>
+        <td>
+          The bootstrap servers connection string.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#benchmarkspeckafkaconfigtopicsindex">topics</a></b></td>
+        <td>[]object</td>
+        <td>
+          List of topics to be created for each experiment. Alternative theodolite offers the possibility to remove certain topics after each experiment.<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### benchmark.spec.kafkaConfig.topics[index]
+<sup><sup>[↩ Parent](#benchmarkspeckafkaconfig)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>removeOnly</b></td>
+        <td>boolean</td>
+        <td>
+          Determines if this topic should only be deleted after each experiement. For removeOnly topics the name can be a RegEx describing the topic.<br/>
+          <br/>
+            <i>Default</i>: false<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>name</b></td>
+        <td>string</td>
+        <td>
+          The name of the topic.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>numPartitions</b></td>
+        <td>integer</td>
+        <td>
+          The number of partitions of the topic.<br/>
+          <br/>
+            <i>Default</i>: 0<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>replicationFactor</b></td>
+        <td>integer</td>
+        <td>
+          The replication factor of the topic.<br/>
+          <br/>
+            <i>Default</i>: 0<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### benchmark.spec.loadTypes[index]
+<sup><sup>[↩ Parent](#benchmarkspec)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b><a href="#benchmarkspecloadtypesindexpatchersindex">patchers</a></b></td>
+        <td>[]object</td>
+        <td>
+          List of patchers used to scale this resource type.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>typeName</b></td>
+        <td>string</td>
+        <td>
+          Name of the load type.<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### benchmark.spec.loadTypes[index].patchers[index]
+<sup><sup>[↩ Parent](#benchmarkspecloadtypesindex)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>properties</b></td>
+        <td>object</td>
+        <td>
+          (Optional) Patcher specific additional arguments.<br/>
+          <br/>
+            <i>Default</i>: map[]<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>resource</b></td>
+        <td>string</td>
+        <td>
+          Specifies the Kubernetes resource to be patched.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>type</b></td>
+        <td>string</td>
+        <td>
+          Type of the Patcher.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### benchmark.spec.resourceTypes[index]
+<sup><sup>[↩ Parent](#benchmarkspec)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b><a href="#benchmarkspecresourcetypesindexpatchersindex">patchers</a></b></td>
+        <td>[]object</td>
+        <td>
+          List of patchers used to scale this resource type.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>typeName</b></td>
+        <td>string</td>
+        <td>
+          Name of the resource type.<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### benchmark.spec.resourceTypes[index].patchers[index]
+<sup><sup>[↩ Parent](#benchmarkspecresourcetypesindex)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>properties</b></td>
+        <td>object</td>
+        <td>
+          (Optional) Patcher specific additional arguments.<br/>
+          <br/>
+            <i>Default</i>: map[]<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>resource</b></td>
+        <td>string</td>
+        <td>
+          Specifies the Kubernetes resource to be patched.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>type</b></td>
+        <td>string</td>
+        <td>
+          Type of the patcher.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
\ No newline at end of file
diff --git a/docs/crd-execution-doc.md b/docs/crd-execution-doc.md
new file mode 100644
index 0000000000000000000000000000000000000000..21b5cdecabd4a247df9f2c0c8d376ad578f4032f
--- /dev/null
+++ b/docs/crd-execution-doc.md
@@ -0,0 +1,438 @@
+# API Reference
+
+Packages:
+
+- [theodolite.com/v1](#theodolitecomv1)
+
+# theodolite.com/v1
+
+Resource Types:
+
+- [execution](#execution)
+
+
+
+
+## execution
+<sup><sup>[↩ Parent](#theodolitecomv1 )</sup></sup>
+
+
+
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+      <td><b>apiVersion</b></td>
+      <td>string</td>
+      <td>theodolite.com/v1</td>
+      <td>true</td>
+      </tr>
+      <tr>
+      <td><b>kind</b></td>
+      <td>string</td>
+      <td>execution</td>
+      <td>true</td>
+      </tr>
+      <tr>
+      <td><b><a href="https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#objectmeta-v1-meta">metadata</a></b></td>
+      <td>object</td>
+      <td>Refer to the Kubernetes API documentation for the fields of the `metadata` field.</td>
+      <td>true</td>
+      </tr><tr>
+        <td><b><a href="#executionstatus">status</a></b></td>
+        <td>object</td>
+        <td>
+          <br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b><a href="#executionspec">spec</a></b></td>
+        <td>object</td>
+        <td>
+          <br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### execution.status
+<sup><sup>[↩ Parent](#execution)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>executionDuration</b></td>
+        <td>string</td>
+        <td>
+          Duration of the execution in seconds<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>executionState</b></td>
+        <td>string</td>
+        <td>
+          <br/>
+        </td>
+        <td>false</td>
+      </tr></tbody>
+</table>
+
+
+### execution.spec
+<sup><sup>[↩ Parent](#execution)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>name</b></td>
+        <td>string</td>
+        <td>
+          This field exists only for technical reasons and should not be set by the user. The value of the field will be overwritten.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>benchmark</b></td>
+        <td>string</td>
+        <td>
+          The name of the benchmark this execution is referring to.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#executionspecconfigoverridesindex">configOverrides</a></b></td>
+        <td>[]object</td>
+        <td>
+          List of patchers that are used to override existing configurations.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#executionspecexecution">execution</a></b></td>
+        <td>object</td>
+        <td>
+          Defines the overall parameter for the execution.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#executionspecload">load</a></b></td>
+        <td>object</td>
+        <td>
+          Specifies the load values that are benchmarked.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#executionspecresources">resources</a></b></td>
+        <td>object</td>
+        <td>
+          Specifies the scaling resource that is benchmarked.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b><a href="#executionspecslosindex">slos</a></b></td>
+        <td>[]object</td>
+        <td>
+          List of resource values for the specified resource type.<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### execution.spec.configOverrides[index]
+<sup><sup>[↩ Parent](#executionspec)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b><a href="#executionspecconfigoverridesindexpatcher">patcher</a></b></td>
+        <td>object</td>
+        <td>
+          Patcher used to patch a resource<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>value</b></td>
+        <td>string</td>
+        <td>
+          <br/>
+        </td>
+        <td>false</td>
+      </tr></tbody>
+</table>
+
+
+### execution.spec.configOverrides[index].patcher
+<sup><sup>[↩ Parent](#executionspecconfigoverridesindex)</sup></sup>
+
+
+
+Patcher used to patch a resource
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>properties</b></td>
+        <td>object</td>
+        <td>
+          (Optional) Patcher specific additional arguments.<br/>
+          <br/>
+            <i>Default</i>: map[]<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>resource</b></td>
+        <td>string</td>
+        <td>
+          Specifies the Kubernetes resource to be patched.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>type</b></td>
+        <td>string</td>
+        <td>
+          Type of the Patcher.<br/>
+          <br/>
+            <i>Default</i>: <br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### execution.spec.execution
+<sup><sup>[↩ Parent](#executionspec)</sup></sup>
+
+
+
+Defines the overall parameter for the execution.
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>loadGenerationDelay</b></td>
+        <td>integer</td>
+        <td>
+          Seconds to wait between the start of the SUT and the load generator.<br/>
+        </td>
+        <td>false</td>
+      </tr><tr>
+        <td><b>duration</b></td>
+        <td>integer</td>
+        <td>
+          Defines the duration of each experiment in seconds.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>repetitions</b></td>
+        <td>integer</td>
+        <td>
+          Numper of repititions for each experiments.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>restrictions</b></td>
+        <td>[]string</td>
+        <td>
+          List of restriction strategys used to delimit the search space.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>strategy</b></td>
+        <td>string</td>
+        <td>
+          Defines the used strategy for the execution, either 'LinearSearch' or 'BinarySearch'<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### execution.spec.load
+<sup><sup>[↩ Parent](#executionspec)</sup></sup>
+
+
+
+Specifies the load values that are benchmarked.
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>loadType</b></td>
+        <td>string</td>
+        <td>
+          The type of the load. It must match one of the load types specified in the referenced benchmark.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>loadValues</b></td>
+        <td>[]integer</td>
+        <td>
+          List of load values for the specified load type.<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### execution.spec.resources
+<sup><sup>[↩ Parent](#executionspec)</sup></sup>
+
+
+
+Specifies the scaling resource that is benchmarked.
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>resourceType</b></td>
+        <td>string</td>
+        <td>
+          The type of the resource. It must match one of the resource types specified in the referenced benchmark.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>resourceValues</b></td>
+        <td>[]integer</td>
+        <td>
+          <br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
+
+
+### execution.spec.slos[index]
+<sup><sup>[↩ Parent](#executionspec)</sup></sup>
+
+
+
+
+
+<table>
+    <thead>
+        <tr>
+            <th>Name</th>
+            <th>Type</th>
+            <th>Description</th>
+            <th>Required</th>
+        </tr>
+    </thead>
+    <tbody><tr>
+        <td><b>externalSloUrl</b></td>
+        <td>string</td>
+        <td>
+          Connection string for a external slo analysis.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>offset</b></td>
+        <td>integer</td>
+        <td>
+          Hours by which the start and end timestamp will be shifted (for different timezones).<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>prometheusUrl</b></td>
+        <td>string</td>
+        <td>
+          Connection string for Promehteus.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>sloType</b></td>
+        <td>string</td>
+        <td>
+          The type of the SLO. It must match 'lag trend'.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>threshold</b></td>
+        <td>integer</td>
+        <td>
+          The threshold the SUT should meet for a sucessful experiment.<br/>
+        </td>
+        <td>true</td>
+      </tr><tr>
+        <td><b>warmup</b></td>
+        <td>integer</td>
+        <td>
+          Seconds of time that are ignored in the analysis.<br/>
+        </td>
+        <td>true</td>
+      </tr></tbody>
+</table>
\ No newline at end of file
diff --git a/helm/benchmark-definitions b/helm/benchmark-definitions
new file mode 120000
index 0000000000000000000000000000000000000000..e25d86a1f35f9815225c23d78b8524f9df81f9b5
--- /dev/null
+++ b/helm/benchmark-definitions
@@ -0,0 +1 @@
+../theodolite-benchmarks/definitions/
\ No newline at end of file
diff --git a/helm/templates/theodolite/benchmark-resources-config-map.yaml b/helm/templates/theodolite/benchmark-resources-config-map.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4ec1c1bd9c3b9c05cb77920c20b9b573d413c94a
--- /dev/null
+++ b/helm/templates/theodolite/benchmark-resources-config-map.yaml
@@ -0,0 +1,19 @@
+{{- $processedDict := dict -}}
+{{- range $path, $bytes := .Files.Glob "benchmark-definitions/**/resources/**" }}
+{{- $name := base (dir (dir $path)) }}
+{{- if not (hasKey $processedDict $name) -}}
+{{ $_ := set $processedDict $name "true" }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+    name: benchmark-resources-{{ $name }}
+data:
+{{ ($.Files.Glob (printf "benchmark-definitions/%s/resources/*" $name)).AsConfig | indent 2 }}
+---
+{{- end }}
+{{- end }}
+apiVersion: v1
+kind: ConfigMap
+metadata:
+    name: benchmark-resources-custom
+data: {}
diff --git a/helm/templates/theodolite/random-scheduler/cluster-role-binding.yaml b/helm/templates/theodolite/random-scheduler/cluster-role-binding.yaml
index 658f75c8c5018fe5b9f47cf9619bb4ee5b26b8e5..605159e1b941730d9baddac679c3c1b91e8a88b6 100644
--- a/helm/templates/theodolite/random-scheduler/cluster-role-binding.yaml
+++ b/helm/templates/theodolite/random-scheduler/cluster-role-binding.yaml
@@ -1,4 +1,4 @@
-{{- if .Values.randomScheduler.rbac.create -}}
+{{- if and .Values.randomScheduler.enabled .Values.randomScheduler.rbac.create -}}
 apiVersion: rbac.authorization.k8s.io/v1
 kind: ClusterRoleBinding
 metadata:
diff --git a/helm/templates/theodolite/random-scheduler/service-account.yaml b/helm/templates/theodolite/random-scheduler/service-account.yaml
index babfff17b46d62e7e820fcb9dc8a35d73b4e6538..593d9589de53b0c3ad9f826ea560c77acaf54a25 100644
--- a/helm/templates/theodolite/random-scheduler/service-account.yaml
+++ b/helm/templates/theodolite/random-scheduler/service-account.yaml
@@ -1,4 +1,4 @@
-{{- if .Values.randomScheduler.serviceAccount.create -}}
+{{- if and .Values.randomScheduler.enabled .Values.randomScheduler.serviceAccount.create -}}
 apiVersion: v1
 kind: ServiceAccount
 metadata:
diff --git a/helm/templates/theodolite/theodolite-operator.yaml b/helm/templates/theodolite/theodolite-operator.yaml
index 7e9194fb47956e9dfa447a5bf7f820f34bbd50d4..3487b9a4fabb16897b302d8be65f065a647ffb16 100644
--- a/helm/templates/theodolite/theodolite-operator.yaml
+++ b/helm/templates/theodolite/theodolite-operator.yaml
@@ -29,14 +29,30 @@ spec:
             - name: THEODOLITE_APP_RESOURCES
               value: "./benchmark-resources"
             - name: RESULTS_FOLDER
-              value: "results"
+              value: "./results"
           volumeMounts:
             {{- if .Values.operator.resultsVolume.enabled }}
             - name: theodolite-pv-storage
               mountPath: "/deployments/results"
             {{- end }}
-            - name: benchmark-resources
-              mountPath: /work/benchmark-resources
+            - name: benchmark-resources-uc1-kstreams
+              mountPath: /deployments/benchmark-resources/uc1-kstreams
+            - name: benchmark-resources-uc2-kstreams
+              mountPath: /deployments/benchmark-resources/uc2-kstreams
+            - name: benchmark-resources-uc3-kstreams
+              mountPath: /deployments/benchmark-resources/uc3-kstreams
+            - name: benchmark-resources-uc4-kstreams
+              mountPath: /deployments/benchmark-resources/uc4-kstreams
+            - name: benchmark-resources-uc1-flink
+              mountPath: /deployments/benchmark-resources/uc1-flink
+            - name: benchmark-resources-uc2-flink
+              mountPath: /deployments/benchmark-resources/uc2-flink
+            - name: benchmark-resources-uc3-flink
+              mountPath: /deployments/benchmark-resources/uc3-flink
+            - name: benchmark-resources-uc4-flink
+              mountPath: /deployments/benchmark-resources/uc4-flink
+            - name: benchmark-resources-custom
+              mountPath: /deployments/benchmark-resources/custom
         {{- if .Values.operator.sloChecker.lagTrend.enabled }}
         - name: lag-trend-slo-checker
           image: "{{ .Values.operator.sloChecker.lagTrend.image }}:{{ .Values.operator.sloChecker.lagTrend.imageTag }}"
@@ -67,8 +83,40 @@ spec:
         persistentVolumeClaim:
           claimName: {{ .Values.operator.resultsVolume.persistentVolumeClaim.name | quote }}
       {{- end }}
-      - name: benchmark-resources
+      - name: benchmark-resources-uc1-kstreams
         configMap:
-          name: benchmark-resources
+          name: benchmark-resources-uc1-kstreams
+          optional: true
+      - name: benchmark-resources-uc2-kstreams
+        configMap:
+          name: benchmark-resources-uc2-kstreams
+          optional: true
+      - name: benchmark-resources-uc3-kstreams
+        configMap:
+          name: benchmark-resources-uc3-kstreams
+          optional: true
+      - name: benchmark-resources-uc4-kstreams
+        configMap:
+          name: benchmark-resources-uc4-kstreams
+          optional: true
+      - name: benchmark-resources-uc1-flink
+        configMap:
+          name: benchmark-resources-uc1-flink
+          optional: true
+      - name: benchmark-resources-uc2-flink
+        configMap:
+          name: benchmark-resources-uc2-flink
+          optional: true
+      - name: benchmark-resources-uc3-flink
+        configMap:
+          name: benchmark-resources-uc3-flink
+          optional: true
+      - name: benchmark-resources-uc4-flink
+        configMap:
+          name: benchmark-resources-uc4-flink
+          optional: true
+      - name: benchmark-resources-custom
+        configMap:
+          name: benchmark-resources-custom
           optional: true
 {{- end }}
diff --git a/theodolite-benchmarks/definitions/install-configmaps.sh b/theodolite-benchmarks/definitions/install-configmaps.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7ddd606a162185993ce402ef4d3b84d8d00eb82c
--- /dev/null
+++ b/theodolite-benchmarks/definitions/install-configmaps.sh
@@ -0,0 +1,8 @@
+kubectl create configmap benchmark-resources-uc1-flink --from-file uc1-flink/resources
+kubectl create configmap benchmark-resources-uc2-flink --from-file uc2-flink/resources
+kubectl create configmap benchmark-resources-uc3-flink --from-file uc3-flink/resources
+kubectl create configmap benchmark-resources-uc4-flink --from-file uc4-flink/resources
+kubectl create configmap benchmark-resources-uc1-kstreams --from-file uc1-kstreams/resources
+kubectl create configmap benchmark-resources-uc2-kstreams --from-file uc2-kstreams/resources
+kubectl create configmap benchmark-resources-uc3-kstreams --from-file uc3-kstreams/resources
+kubectl create configmap benchmark-resources-uc4-kstreams --from-file uc4-kstreams/resources
\ No newline at end of file
diff --git a/theodolite-benchmarks/definitions/uc1-flink/flink-configuration-configmap.yaml b/theodolite-benchmarks/definitions/uc1-flink/resources/flink-configuration-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-flink/flink-configuration-configmap.yaml
rename to theodolite-benchmarks/definitions/uc1-flink/resources/flink-configuration-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-flink/jobmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc1-flink/resources/jobmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-flink/jobmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc1-flink/resources/jobmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-flink/jobmanager-rest-service.yaml b/theodolite-benchmarks/definitions/uc1-flink/resources/jobmanager-rest-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-flink/jobmanager-rest-service.yaml
rename to theodolite-benchmarks/definitions/uc1-flink/resources/jobmanager-rest-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-flink/jobmanager-service.yaml b/theodolite-benchmarks/definitions/uc1-flink/resources/jobmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-flink/jobmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc1-flink/resources/jobmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-flink/service-monitor.yaml b/theodolite-benchmarks/definitions/uc1-flink/resources/service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-flink/service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc1-flink/resources/service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-flink/taskmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc1-flink/resources/taskmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-flink/taskmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc1-flink/resources/taskmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-flink/taskmanager-service.yaml b/theodolite-benchmarks/definitions/uc1-flink/resources/taskmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-flink/taskmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc1-flink/resources/taskmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-flink/uc1-flink-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc1-flink/uc1-flink-benchmark-operator.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..30e2d6bcae0156d08aa71c428934f420b4085e38
--- /dev/null
+++ b/theodolite-benchmarks/definitions/uc1-flink/uc1-flink-benchmark-operator.yaml
@@ -0,0 +1,47 @@
+apiVersion: theodolite.com/v1
+kind: benchmark
+metadata:
+  name: uc1-flink
+spec:
+  appResource:
+    - "uc1-flink/flink-configuration-configmap.yaml"
+    - "uc1-flink/taskmanager-deployment.yaml"
+    - "uc1-flink/taskmanager-service.yaml"
+    - "uc1-flink/service-monitor.yaml"
+    - "uc1-flink/jobmanager-service.yaml"
+    - "uc1-flink/jobmanager-deployment.yaml"
+    #- "uc1-flink/jobmanager-rest-service.yaml"
+  loadGenResource:
+    - "uc1-kstreams/uc1-load-generator-deployment.yaml"
+    - "uc1-kstreams/uc1-load-generator-service.yaml"
+  resourceTypes:
+    - typeName: "Instances"
+      patchers:
+        - type: "ReplicaPatcher"
+          resource: "uc1-flink/taskmanager-deployment.yaml"
+        - type: "EnvVarPatcher"
+          resource: "uc1-flink/jobmanager-deployment.yaml"
+          properties:
+            container: "jobmanager"
+            variableName: "PARALLELISM"
+        - type: "EnvVarPatcher" # required?
+          resource: "uc1-flink/taskmanager-deployment.yaml"
+          properties:
+            container: "taskmanager"
+            variableName: "PARALLELISM"
+  loadTypes:
+    - typeName: "NumSensors"
+      patchers:
+        - type: "EnvVarPatcher"
+          resource: "uc1-kstreams/uc1-load-generator-deployment.yaml"
+          properties:
+            container: "workload-generator"
+            variableName: "NUM_SENSORS"
+        - type: NumSensorsLoadGeneratorReplicaPatcher
+          resource: "uc1-kstreams/uc1-load-generator-deployment.yaml"
+  kafkaConfig:
+    bootstrapServer: "theodolite-cp-kafka:9092"
+    topics:
+      - name: "input"
+        numPartitions: 40
+        replicationFactor: 1
\ No newline at end of file
diff --git a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-jmx-configmap.yaml b/theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-jmx-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-kstreams/uc1-jmx-configmap.yaml
rename to theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-jmx-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-kstreams-deployment.yaml b/theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-kstreams-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-kstreams/uc1-kstreams-deployment.yaml
rename to theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-kstreams-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-kstreams-service.yaml b/theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-kstreams-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-kstreams/uc1-kstreams-service.yaml
rename to theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-kstreams-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-load-generator-deployment.yaml b/theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-load-generator-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-kstreams/uc1-load-generator-deployment.yaml
rename to theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-load-generator-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-load-generator-service.yaml b/theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-load-generator-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-kstreams/uc1-load-generator-service.yaml
rename to theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-load-generator-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-service-monitor.yaml b/theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc1-kstreams/uc1-service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc1-kstreams/resources/uc1-service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc1-kstreams/uc1-benchmark-operator.yaml
index b80b572dfd30e9c056d3c01ba17cc662d70fc749..4ec3b08d8f20b6b4e4f108b43c9375179b7aee81 100644
--- a/theodolite-benchmarks/definitions/uc1-kstreams/uc1-benchmark-operator.yaml
+++ b/theodolite-benchmarks/definitions/uc1-kstreams/uc1-benchmark-operator.yaml
@@ -4,28 +4,28 @@ metadata:
   name: uc1-kstreams
 spec:
   appResource:
-    - "uc1-kstreams-deployment.yaml"
-    - "uc1-kstreams-service.yaml"
-    - "uc1-jmx-configmap.yaml"
-    - "uc1-service-monitor.yaml"
+    - "uc1-kstreams/uc1-kstreams-deployment.yaml"
+    - "uc1-kstreams/uc1-kstreams-service.yaml"
+    - "uc1-kstreams/uc1-jmx-configmap.yaml"
+    - "uc1-kstreams/uc1-service-monitor.yaml"
   loadGenResource:
-    - "uc1-load-generator-deployment.yaml"
-    - "uc1-load-generator-service.yaml"
+    - "uc1-kstreams/uc1-load-generator-deployment.yaml"
+    - "uc1-kstreams/uc1-load-generator-service.yaml"
   resourceTypes:
     - typeName: "Instances"
       patchers:
         - type: "ReplicaPatcher"
-          resource: "uc1-kstreams-deployment.yaml"
+          resource: "uc1-kstreams/uc1-kstreams-deployment.yaml"
   loadTypes:
     - typeName: "NumSensors"
       patchers:
         - type: "EnvVarPatcher"
-          resource: "uc1-load-generator-deployment.yaml"
+          resource: "uc1-kstreams/uc1-load-generator-deployment.yaml"
           properties:
             container: "workload-generator"
             variableName: "NUM_SENSORS"
         - type: "NumSensorsLoadGeneratorReplicaPatcher"
-          resource: "uc1-load-generator-deployment.yaml"
+          resource: "uc1-kstreams/uc1-load-generator-deployment.yaml"
           properties:
             loadGenMaxRecords: "15000"
   kafkaConfig:
@@ -34,5 +34,3 @@ spec:
       - name: "input"
         numPartitions: 40
         replicationFactor: 1
-      - name: "theodolite-.*"
-        removeOnly: True
diff --git a/theodolite-benchmarks/definitions/uc2-flink/flink-configuration-configmap.yaml b/theodolite-benchmarks/definitions/uc2-flink/resources/flink-configuration-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-flink/flink-configuration-configmap.yaml
rename to theodolite-benchmarks/definitions/uc2-flink/resources/flink-configuration-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-flink/jobmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc2-flink/resources/jobmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-flink/jobmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc2-flink/resources/jobmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-flink/jobmanager-rest-service.yaml b/theodolite-benchmarks/definitions/uc2-flink/resources/jobmanager-rest-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-flink/jobmanager-rest-service.yaml
rename to theodolite-benchmarks/definitions/uc2-flink/resources/jobmanager-rest-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-flink/jobmanager-service.yaml b/theodolite-benchmarks/definitions/uc2-flink/resources/jobmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-flink/jobmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc2-flink/resources/jobmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-flink/service-monitor.yaml b/theodolite-benchmarks/definitions/uc2-flink/resources/service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-flink/service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc2-flink/resources/service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-flink/taskmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc2-flink/resources/taskmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-flink/taskmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc2-flink/resources/taskmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-flink/taskmanager-service.yaml b/theodolite-benchmarks/definitions/uc2-flink/resources/taskmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-flink/taskmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc2-flink/resources/taskmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-flink/uc2-flink-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc2-flink/uc2-flink-benchmark-operator.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4bc67808c5f4ba391650a2f9884444c2dca20cc6
--- /dev/null
+++ b/theodolite-benchmarks/definitions/uc2-flink/uc2-flink-benchmark-operator.yaml
@@ -0,0 +1,52 @@
+apiVersion: theodolite.com/v1
+kind: benchmark
+metadata:
+  name: uc2-flink
+spec:
+  appResource:
+    - "uc2-flink/flink-configuration-configmap.yaml"
+    - "uc2-flink/taskmanager-deployment.yaml"
+    - "uc2-flink/taskmanager-service.yaml"
+    - "uc2-flink/service-monitor.yaml"
+    - "uc2-flink/jobmanager-service.yaml"
+    - "uc2-flink/jobmanager-deployment.yaml"
+    #- "uc2-flink/jobmanager-rest-service.yaml"
+  loadGenResource:
+    - "uc2-kstreams/uc2-load-generator-deployment.yaml"
+    - "uc2-kstreams/uc2-load-generator-service.yaml"
+  resourceTypes:
+    - typeName: "Instances"
+      patchers:
+        - type: "ReplicaPatcher"
+          resource: "uc2-flink/taskmanager-deployment.yaml"
+        - type: "EnvVarPatcher"
+          resource: "uc2-flink/jobmanager-deployment.yaml"
+          properties:
+            container: "jobmanager"
+            variableName: "PARALLELISM"
+        - type: "EnvVarPatcher" # required?
+          resource: "uc2-flink/taskmanager-deployment.yaml"
+          properties:
+            container: "taskmanager"
+            variableName: "PARALLELISM"
+  loadTypes:
+    - typeName: "NumSensors"
+      patchers:
+        - type: "EnvVarPatcher"
+          resource: "uc2-kstreams/uc2-load-generator-deployment.yaml"
+          properties:
+            container: "workload-generator"
+            variableName: "NUM_SENSORS"
+        - type: NumSensorsLoadGeneratorReplicaPatcher
+          resource: "uc2-kstreams/uc2-load-generator-deployment.yaml"
+  kafkaConfig:
+    bootstrapServer: "theodolite-cp-kafka:9092"
+    topics:
+      - name: "input"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "output"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "theodolite-.*"
+        removeOnly: True
diff --git a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-jmx-configmap.yaml b/theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-jmx-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-kstreams/uc2-jmx-configmap.yaml
rename to theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-jmx-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-kstreams-deployment.yaml b/theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-kstreams-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-kstreams/uc2-kstreams-deployment.yaml
rename to theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-kstreams-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-kstreams-service.yaml b/theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-kstreams-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-kstreams/uc2-kstreams-service.yaml
rename to theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-kstreams-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-load-generator-deployment.yaml b/theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-load-generator-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-kstreams/uc2-load-generator-deployment.yaml
rename to theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-load-generator-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-load-generator-service.yaml b/theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-load-generator-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-kstreams/uc2-load-generator-service.yaml
rename to theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-load-generator-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-service-monitor.yaml b/theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc2-kstreams/uc2-service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc2-kstreams/resources/uc2-service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc2-kstreams/uc2-benchmark-operator.yaml
index b65bbdedb055c206c1ebcd7ab6a450318ee8c00f..aa25c53d793fd319ba16e15f8e8a152f177e799e 100644
--- a/theodolite-benchmarks/definitions/uc2-kstreams/uc2-benchmark-operator.yaml
+++ b/theodolite-benchmarks/definitions/uc2-kstreams/uc2-benchmark-operator.yaml
@@ -1,31 +1,31 @@
 apiVersion: theodolite.com/v1
 kind: benchmark
+metadata:
+  name: uc2-kstreams
 spec:
-  metadata:
-    name: uc2-kstreams
   appResource:
-    - "uc2-kstreams-deployment.yaml"
-    - "uc2-kstreams-service.yaml"
-    - "uc2-jmx-configmap.yaml"
-    - "uc2-service-monitor.yaml"
+    - "uc2-kstreams/uc2-kstreams-deployment.yaml"
+    - "uc2-kstreams/uc2-kstreams-service.yaml"
+    - "uc2-kstreams/uc2-jmx-configmap.yaml"
+    - "uc2-kstreams/uc2-service-monitor.yaml"
   loadGenResource:
-    - "uc2-load-generator-deployment.yaml"
-    - "uc2-load-generator-service.yaml"
+    - "uc2-kstreams/uc2-load-generator-deployment.yaml"
+    - "uc2-kstreams/uc2-load-generator-service.yaml"
   resourceTypes:
     - typeName: "Instances"
       patchers:
         - type: "ReplicaPatcher"
-          resource: "uc2-kstreams-deployment.yaml"
+          resource: "uc2-kstreams/uc2-kstreams-deployment.yaml"
   loadTypes:
     - typeName: "NumSensors"
       patchers:
         - type: "EnvVarPatcher"
-          resource: "uc2-load-generator-deployment.yaml"
+          resource: "uc2-kstreams/uc2-load-generator-deployment.yaml"
           properties:
             container: "workload-generator"
             variableName: "NUM_SENSORS"
         - type: NumSensorsLoadGeneratorReplicaPatcher
-          resource: "uc2-load-generator-deployment.yaml"
+          resource: "uc2-kstreams/uc2-load-generator-deployment.yaml"
           properties:
             loadGenMaxRecords: "15000"
   kafkaConfig:
diff --git a/theodolite-benchmarks/definitions/uc3-flink/flink-configuration-configmap.yaml b/theodolite-benchmarks/definitions/uc3-flink/resources/flink-configuration-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-flink/flink-configuration-configmap.yaml
rename to theodolite-benchmarks/definitions/uc3-flink/resources/flink-configuration-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-flink/jobmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc3-flink/resources/jobmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-flink/jobmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc3-flink/resources/jobmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-flink/jobmanager-rest-service.yaml b/theodolite-benchmarks/definitions/uc3-flink/resources/jobmanager-rest-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-flink/jobmanager-rest-service.yaml
rename to theodolite-benchmarks/definitions/uc3-flink/resources/jobmanager-rest-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-flink/jobmanager-service.yaml b/theodolite-benchmarks/definitions/uc3-flink/resources/jobmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-flink/jobmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc3-flink/resources/jobmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-flink/service-monitor.yaml b/theodolite-benchmarks/definitions/uc3-flink/resources/service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-flink/service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc3-flink/resources/service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-flink/taskmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc3-flink/resources/taskmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-flink/taskmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc3-flink/resources/taskmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-flink/taskmanager-service.yaml b/theodolite-benchmarks/definitions/uc3-flink/resources/taskmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-flink/taskmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc3-flink/resources/taskmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-flink/uc3-flink-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc3-flink/uc3-flink-benchmark-operator.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f7a05c1371089126d5e39b91f48ac9df42ef05e1
--- /dev/null
+++ b/theodolite-benchmarks/definitions/uc3-flink/uc3-flink-benchmark-operator.yaml
@@ -0,0 +1,52 @@
+apiVersion: theodolite.com/v1
+kind: benchmark
+metadata:
+  name: uc3-flink
+spec:
+  appResource:
+    - "uc3-flink/flink-configuration-configmap.yaml"
+    - "uc3-flink/taskmanager-deployment.yaml"
+    - "uc3-flink/taskmanager-service.yaml"
+    - "uc3-flink/service-monitor.yaml"
+    - "uc3-flink/jobmanager-service.yaml"
+    - "uc3-flink/jobmanager-deployment.yaml"
+    #- "uc3-flink/jobmanager-rest-service.yaml"
+  loadGenResource:
+    - "uc3-kstreams/uc3-load-generator-deployment.yaml"
+    - "uc3-kstreams/uc3-load-generator-service.yaml"
+  resourceTypes:
+    - typeName: "Instances"
+      patchers:
+        - type: "ReplicaPatcher"
+          resource: "uc3-flink/taskmanager-deployment.yaml"
+        - type: "EnvVarPatcher"
+          resource: "uc3-flink/jobmanager-deployment.yaml"
+          properties:
+            container: "jobmanager"
+            variableName: "PARALLELISM"
+        - type: "EnvVarPatcher" # required?
+          resource: "uc3-flink/taskmanager-deployment.yaml"
+          properties:
+            container: "taskmanager"
+            variableName: "PARALLELISM"
+  loadTypes:
+    - typeName: "NumSensors"
+      patchers:
+        - type: "EnvVarPatcher"
+          resource: "uc3-kstreams/uc3-load-generator-deployment.yaml"
+          properties:
+            container: "workload-generator"
+            variableName: "NUM_SENSORS"
+        - type: NumSensorsLoadGeneratorReplicaPatcher
+          resource: "uc3-kstreams/uc3-load-generator-deployment.yaml"
+  kafkaConfig:
+    bootstrapServer: "theodolite-cp-kafka:9092"
+    topics:
+      - name: "input"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "output"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "theodolite-.*"
+        removeOnly: True
diff --git a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-jmx-configmap.yaml b/theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-jmx-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-kstreams/uc3-jmx-configmap.yaml
rename to theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-jmx-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-kstreams-deployment.yaml b/theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-kstreams-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-kstreams/uc3-kstreams-deployment.yaml
rename to theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-kstreams-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-kstreams-service.yaml b/theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-kstreams-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-kstreams/uc3-kstreams-service.yaml
rename to theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-kstreams-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-load-generator-deployment.yaml b/theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-load-generator-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-kstreams/uc3-load-generator-deployment.yaml
rename to theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-load-generator-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-load-generator-service.yaml b/theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-load-generator-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-kstreams/uc3-load-generator-service.yaml
rename to theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-load-generator-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-service-monitor.yaml b/theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc3-kstreams/uc3-service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc3-kstreams/resources/uc3-service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc3-kstreams/uc3-benchmark-operator.yaml
index bfbd7191c5f4a315db29100bcc05341f88cffec2..e2679ed864d4b8673bf0d44a96683ccb86f44090 100644
--- a/theodolite-benchmarks/definitions/uc3-kstreams/uc3-benchmark-operator.yaml
+++ b/theodolite-benchmarks/definitions/uc3-kstreams/uc3-benchmark-operator.yaml
@@ -1,31 +1,31 @@
 apiVersion: theodolite.com/v1
 kind: benchmark
+metadata:
+  name: uc3-kstreams
 spec:
-  metadata:
-    name: uc3-kstreams
   appResource:
-    - "uc3-kstreams-deployment.yaml"
-    - "uc3-kstreams-service.yaml"
-    - "uc3-jmx-configmap.yaml"
-    - "uc3-service-monitor.yaml"
+    - "uc3-kstreams/uc3-kstreams-deployment.yaml"
+    - "uc3-kstreams/uc3-kstreams-service.yaml"
+    - "uc3-kstreams/uc3-jmx-configmap.yaml"
+    - "uc3-kstreams/uc3-service-monitor.yaml"
   loadGenResource:
-    - "uc3-load-generator-deployment.yaml"
-    - "uc3-load-generator-service.yaml"
+    - "uc3-kstreams/uc3-load-generator-deployment.yaml"
+    - "uc3-kstreams/uc3-load-generator-service.yaml"
   resourceTypes:
     - typeName: "Instances"
       patchers:
         - type: "ReplicaPatcher"
-          resource: "uc3-kstreams-deployment.yaml"
+          resource: "uc3-kstreams/uc3-kstreams-deployment.yaml"
   loadTypes:
     - typeName: "NumSensors"
       patchers:
         - type: "EnvVarPatcher"
-          resource: "uc3-load-generator-deployment.yaml"
+          resource: "uc3-kstreams/uc3-load-generator-deployment.yaml"
           properties:
             container: "workload-generator"
             variableName: "NUM_SENSORS"
         - type: NumSensorsLoadGeneratorReplicaPatcher
-          resource: "uc3-load-generator-deployment.yaml"
+          resource: "uc3-kstreams/uc3-load-generator-deployment.yaml"
           properties:
             loadGenMaxRecords: "15000"
   kafkaConfig:
diff --git a/theodolite-benchmarks/definitions/uc4-flink/flink-configuration-configmap.yaml b/theodolite-benchmarks/definitions/uc4-flink/resources/flink-configuration-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-flink/flink-configuration-configmap.yaml
rename to theodolite-benchmarks/definitions/uc4-flink/resources/flink-configuration-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-flink/jobmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc4-flink/resources/jobmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-flink/jobmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc4-flink/resources/jobmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-flink/jobmanager-rest-service.yaml b/theodolite-benchmarks/definitions/uc4-flink/resources/jobmanager-rest-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-flink/jobmanager-rest-service.yaml
rename to theodolite-benchmarks/definitions/uc4-flink/resources/jobmanager-rest-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-flink/jobmanager-service.yaml b/theodolite-benchmarks/definitions/uc4-flink/resources/jobmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-flink/jobmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc4-flink/resources/jobmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-flink/service-monitor.yaml b/theodolite-benchmarks/definitions/uc4-flink/resources/service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-flink/service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc4-flink/resources/service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-flink/taskmanager-deployment.yaml b/theodolite-benchmarks/definitions/uc4-flink/resources/taskmanager-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-flink/taskmanager-deployment.yaml
rename to theodolite-benchmarks/definitions/uc4-flink/resources/taskmanager-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-flink/taskmanager-service.yaml b/theodolite-benchmarks/definitions/uc4-flink/resources/taskmanager-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-flink/taskmanager-service.yaml
rename to theodolite-benchmarks/definitions/uc4-flink/resources/taskmanager-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-flink/uc4-flink-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc4-flink/uc4-flink-benchmark-operator.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..523167286f04e3ec0a66a43eabda618908ae3f11
--- /dev/null
+++ b/theodolite-benchmarks/definitions/uc4-flink/uc4-flink-benchmark-operator.yaml
@@ -0,0 +1,58 @@
+apiVersion: theodolite.com/v1
+kind: benchmark
+metadata:
+  name: uc4-flink
+spec:
+  appResource:
+    - "uc4-flink/flink-configuration-configmap.yaml"
+    - "uc4-flink/taskmanager-deployment.yaml"
+    - "uc4-flink/taskmanager-service.yaml"
+    - "uc4-flink/service-monitor.yaml"
+    - "uc4-flink/jobmanager-service.yaml"
+    - "uc4-flink/jobmanager-deployment.yaml"
+    #- "uc4-flink/jobmanager-rest-service.yaml"
+  loadGenResource:
+    - "uc4-kstreams/uc4-load-generator-deployment.yaml"
+    - "uc4-kstreams/uc4-load-generator-service.yaml"
+  resourceTypes:
+    - typeName: "Instances"
+      patchers:
+        - type: "ReplicaPatcher"
+          resource: "uc4-flink/taskmanager-deployment.yaml"
+        - type: "EnvVarPatcher"
+          resource: "uc4-flink/jobmanager-deployment.yaml"
+          properties:
+            container: "jobmanager"
+            variableName: "PARALLELISM"
+        - type: "EnvVarPatcher" # required?
+          resource: "uc4-flink/taskmanager-deployment.yaml"
+          properties:
+            container: "taskmanager"
+            variableName: "PARALLELISM"
+  loadTypes:
+    - typeName: "NumNestedGroups"
+      patchers:
+        - type: "EnvVarPatcher"
+          resource: "uc4-kstreams/uc4-load-generator-deployment.yaml"
+          properties:
+            container: "workload-generator"
+            variableName: "NUM_NESTED_GROUPS"
+        - type: "NumNestedGroupsLoadGeneratorReplicaPatcher"
+          resource: "uc4-kstreams/uc4-load-generator-deployment.yaml"
+  kafkaConfig:
+    bootstrapServer: "theodolite-cp-kafka:9092"
+    topics:
+      - name: "input"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "output"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "configuration"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "aggregation-feedback"
+        numPartitions: 40
+        replicationFactor: 1
+      - name: "theodolite-.*"
+        removeOnly: True
diff --git a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-jmx-configmap.yaml b/theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-jmx-configmap.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-kstreams/uc4-jmx-configmap.yaml
rename to theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-jmx-configmap.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-kstreams-deployment.yaml b/theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-kstreams-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-kstreams/uc4-kstreams-deployment.yaml
rename to theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-kstreams-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-kstreams-service.yaml b/theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-kstreams-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-kstreams/uc4-kstreams-service.yaml
rename to theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-kstreams-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-load-generator-deployment.yaml b/theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-load-generator-deployment.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-kstreams/uc4-load-generator-deployment.yaml
rename to theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-load-generator-deployment.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-load-generator-service.yaml b/theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-load-generator-service.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-kstreams/uc4-load-generator-service.yaml
rename to theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-load-generator-service.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-service-monitor.yaml b/theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-service-monitor.yaml
similarity index 100%
rename from theodolite-benchmarks/definitions/uc4-kstreams/uc4-service-monitor.yaml
rename to theodolite-benchmarks/definitions/uc4-kstreams/resources/uc4-service-monitor.yaml
diff --git a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-benchmark-operator.yaml b/theodolite-benchmarks/definitions/uc4-kstreams/uc4-benchmark-operator.yaml
index 0ed48c9afd0d8d02493f7afc2df3e440d0ffabdd..3e10fd1aebf071e854cb31501030a50c11eab01d 100644
--- a/theodolite-benchmarks/definitions/uc4-kstreams/uc4-benchmark-operator.yaml
+++ b/theodolite-benchmarks/definitions/uc4-kstreams/uc4-benchmark-operator.yaml
@@ -1,31 +1,31 @@
 apiVersion: theodolite.com/v1
 kind: benchmark
+metadata:
+  name: uc4-kstreams
 spec:
-  metadata:
-    name: uc4-kstreams
   appResource:
-    - "uc4-kstreams-deployment.yaml"
-    - "uc4-kstreams-service.yaml"
-    - "uc4-jmx-configmap.yaml"
-    - "uc4-service-monitor.yaml"
+    - "uc4-kstreams/uc4-kstreams-deployment.yaml"
+    - "uc4-kstreams/uc4-kstreams-service.yaml"
+    - "uc4-kstreams/uc4-jmx-configmap.yaml"
+    - "uc4-kstreams/uc4-service-monitor.yaml"
   loadGenResource:
-    - "uc4-load-generator-deployment.yaml"
-    - "uc4-load-generator-service.yaml"
+    - "uc4-kstreams/uc4-load-generator-deployment.yaml"
+    - "uc4-kstreams/uc4-load-generator-service.yaml"
   resourceTypes:
     - typeName: "Instances"
       patchers:
         - type: "ReplicaPatcher"
-          resource: "uc4-kstreams-deployment.yaml"
+          resource: "uc4-kstreams/uc4-kstreams-deployment.yaml"
   loadTypes:
     - typeName: "NumNestedGroups"
       patchers:
         - type: "EnvVarPatcher"
-          resource: "uc4-load-generator-deployment.yaml"
+          resource: "uc4-kstreams/uc4-load-generator-deployment.yaml"
           properties:
             container: "workload-generator"
             variableName: "NUM_SENSORS"
         - type: NumNestedGroupsLoadGeneratorReplicaPatcher
-          resource: "uc4-load-generator-deployment.yaml"
+          resource: "uc4-kstreams/uc4-load-generator-deployment.yaml"
           properties:
             loadGenMaxRecords: "15000"
             numSensors: "4.0"
diff --git a/theodolite/config/example-execution-yaml-resource.yaml b/theodolite/config/example-execution-yaml-resource.yaml
deleted file mode 100644
index e46a6cf417442b851650fe9699f73e1367dcc794..0000000000000000000000000000000000000000
--- a/theodolite/config/example-execution-yaml-resource.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: example-execution
-benchmark: "uc1-kstreams"
-load:
-  loadType: "NumSensors"
-  loadValues: [25000, 50000, 75000, 100000, 125000, 150000]
-resources:
-  resourceType: "Instances"
-  resourceValues: [1, 2, 3, 4, 5]
-slos:
-  - sloType: "lag trend"
-    threshold: 2000
-    prometheusUrl: "http://prometheus-operated:9090"
-    externalSloUrl: "http://localhost:80/evaluate-slope"
-    offset: 0
-    warmup: 60 # in seconds
-execution:
-  strategy: "LinearSearch"
-  duration: 300 # in seconds
-  repetitions: 1
-  loadGenerationDelay: 30 # in seconds, optional field, default is 0 seconds
-  restrictions:
-    - "LowerBound"
-configOverrides:
-  - patcher:
-      type: "NodeSelectorPatcher"
-      resource: "uc1-load-generator-deployment.yaml"
-      properties:
-        variableName: "env"
-    value: "prod"
-  - patcher:
-      type: "NodeSelectorPatcher"
-      resource: "uc1-kstreams-deployment.yaml"
-      properties:
-        variableName: "env"
-    value: "prod"
-  - patcher:
-      type: "ResourceLimitPatcher"
-      resource: "uc1-kstreams-deployment.yaml"
-      properties:
-        container: "uc-application"
-        limitedResource: "cpu"
-    value: "1000m"
-  - patcher:
-      type: "ResourceLimitPatcher"
-      resource: "uc1-kstreams-deployment.yaml"
-      properties:
-        container: "uc-application"
-        limitedResource: "memory"
-    value: "2Gi"
-#  - patcher:
-#      type: "SchedulerNamePatcher"
-#      resource: "uc1-kstreams-deployment.yaml"
-#    value: "random-scheduler"
diff --git a/theodolite/config/example-operator-execution.yaml b/theodolite/config/example-operator-execution.yaml
deleted file mode 100644
index 9b2a1facbd8be3411407dfcf3cad39fd9f3de6b6..0000000000000000000000000000000000000000
--- a/theodolite/config/example-operator-execution.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-apiVersion: theodolite.com/v1
-kind: execution
-metadata:
-  name: example-execution
-spec:
-  benchmark: "uc1-kstreams"
-  load:
-    loadType: "NumSensors"
-    loadValues: [25000, 50000, 75000, 100000, 125000, 150000]
-  resources:
-    resourceType: "Instances"
-    resourceValues: [1, 2, 3, 4, 5]
-  slos:
-    - sloType: "lag trend"
-      threshold: 2000
-      prometheusUrl: "http://prometheus-operated:9090"
-      externalSloUrl: "http://localhost:80/evaluate-slope"
-      offset: 0
-      warmup: 60 # in seconds
-  execution:
-    strategy: "LinearSearch"
-    duration: 300 # in seconds
-    repetitions: 1
-    loadGenerationDelay: 30 # in seconds
-    restrictions:
-      - "LowerBound"
-  configOverrides:
-    # - patcher:
-    #     type: "NodeSelectorPatcher"
-    #     resource: "uc1-load-generator-deployment.yaml"
-    #     properties:
-    #       variableName: "env"
-    #     value: "prod"
-    # - patcher:
-    #     type: "NodeSelectorPatcher"
-    #     resource: "uc1-kstreams-deployment.yaml"
-    #     properties:
-    #       variableName: "env"
-    #   value: "prod"
-    # - patcher:
-    #     type: "ResourceLimitPatcher"
-    #     resource: "uc1-kstreams-deployment.yaml"
-    #     properties:
-    #       container: "uc-application"
-    #       limitedResource: "cpu"
-    #   value: "1000m"
-    # - patcher:
-    #     type: "ResourceLimitPatcher"
-    #     resource: "uc1-kstreams-deployment.yaml"
-    #     properties:
-    #       container: "uc-application"
-    #       limitedResource: "memory"
-    #   value: "2Gi"
-    #  - patcher:
-    #      type: "SchedulerNamePatcher"
-    #      resource: "uc1-kstreams-deployment.yaml"
-    #    value: "random-scheduler"
diff --git a/theodolite/crd/crd-benchmark.yaml b/theodolite/crd/crd-benchmark.yaml
index 0457e041d7874912ac7d19edb9b372d4580228a5..9de29fc031e26b9e4e16517492740b0805fd4af9 100644
--- a/theodolite/crd/crd-benchmark.yaml
+++ b/theodolite/crd/crd-benchmark.yaml
@@ -23,89 +23,117 @@ spec:
             required: ["appResource", "loadGenResource", "resourceTypes", "loadTypes", "kafkaConfig"]
             properties:
               name:
+                description: This field exists only for technical reasons and should not be set by the user. The value of the field will be overwritten.
                 type: string
               appResource:
+                description: A list of file names that reference Kubernetes resources that are deployed on the cluster for the system under test (SUT).
                 type: array
                 minItems: 1
                 items:
                   type: string
               loadGenResource:
+                description:  A list of file names that reference Kubernetes resources that are deployed on the cluster for the load generator.
                 type: array
                 minItems: 1
                 items:
                   type: string
               resourceTypes:
+                description: A list of resource types that can be scaled for this `benchmark` resource. For each resource type the concrete values are defined in the `execution` object.
                 type: array
                 minItems: 1
                 items:
                   type: object
+                  required: ["typeName", "patchers"]
                   properties:
                     typeName:
+                      description: Name of the resource type.
                       type: string
                     patchers:
+                      description: List of patchers used to scale this resource type.
+                      examples: test test test
                       type: array
                       minItems: 1
                       items:
                         type: object
+                        required: ["type", "resource"]
                         properties:
                           type:
+                            description: Type of the patcher.
                             type: string
                             default: ""
                           resource:
+                            description: Specifies the Kubernetes resource to be patched.
                             type: string
                             default: ""
                           properties:
+                            description: (Optional) Patcher specific additional arguments.
                             type: object
                             additionalProperties: true
                             x-kubernetes-map-type: "granular"
                             default: {}
               loadTypes:
+                description: A list of load types that can be scaled for this benchmark. For each load type the concrete values are defined in the execution object.
                 type: array
                 minItems: 1
                 items:
                   type: object
+                  required: ["typeName","patchers"]
                   properties:
                     typeName:
+                      description: Name of the load type.
                       type: string
                     patchers:
+                      description: List of patchers used to scale this resource type.
                       type: array
                       minItems: 1
                       items:
                         type: object
+                        required: ["type", "resource"]
                         properties:
                           type:
+                            description: Type of the Patcher.
                             type: string
                             default: ""
                           resource:
+                            description: Specifies the Kubernetes resource to be patched.
                             type: string
                             default: ""
                           properties:
+                            description: (Optional) Patcher specific additional arguments.
                             type: object
                             additionalProperties: true
                             x-kubernetes-map-type: "granular"
                             default: {}
               kafkaConfig:
+                description: Contains the Kafka configuration.
                 type: object
+                required: ["bootstrapServer", "topics"]
                 properties:
                   bootstrapServer:
+                    description: The bootstrap servers connection string.
                     type: string
                   topics:
+                    description: List of topics to be created for each experiment. Alternative theodolite offers the possibility to remove certain topics after each experiment.
                     type: array
                     minItems: 1
                     items:
                       type: object
-                      required: []
+                      required: ["name", "numPartitions", "replicationFactor"]
                       properties:
                         name:
+                          description: The name of the topic.
                           type: string
                           default: ""
                         numPartitions:
+                          description: The number of partitions of the topic.
                           type: integer
                           default: 0
                         replicationFactor:
+                          description: The replication factor of the topic.
                           type: integer
                           default: 0
                         removeOnly:
+                          description: Determines if this topic should only be deleted after each experiement. For removeOnly topics the name can be a RegEx describing the topic.
                           type: boolean
                           default: false
     additionalPrinterColumns:
diff --git a/theodolite/crd/crd-execution.yaml b/theodolite/crd/crd-execution.yaml
index b984f3ebe5ca7c8868adb9d3593e5d87d73fc2bd..f0588ecf98d40aadc10c1804f32d4bce72d22b03 100644
--- a/theodolite/crd/crd-execution.yaml
+++ b/theodolite/crd/crd-execution.yaml
@@ -23,79 +23,106 @@ spec:
             required: ["benchmark", "load", "resources", "slos", "execution", "configOverrides"]
             properties:
               name:
+                description: This field exists only for technical reasons and should not be set by the user. The value of the field will be overwritten.
                 type: string
                 default: ""
               benchmark:
+                description: The name of the benchmark this execution is referring to.
                 type: string
               load: # definition of the load dimension
+                description: Specifies the load values that are benchmarked.
                 type: object
                 required: ["loadType", "loadValues"]
                 properties:
                   loadType:
-                   type: string
+                    description: The type of the load. It must match one of the load types specified in the referenced benchmark.
+                    type: string
                   loadValues:
+                    description: List of load values for the specified load type.
                     type: array
                     items:
                       type: integer
               resources: # definition of the resource dimension
+                description: Specifies the scaling resource that is benchmarked.
                 type: object
                 required: ["resourceType", "resourceValues"]
                 properties:
                   resourceType:
+                    description: The type of the resource. It must match one of the resource types specified in the referenced benchmark.
                     type: string
                   resourceValues:
+                    descriptoin:  List of resource values for the specified resource type.
                     type: array
                     items:
                       type: integer
               slos: # def of service level objectives
+                description:  List of resource values for the specified resource type.
                 type: array
                 items:
                   type: object
                   required: ["sloType", "threshold", "prometheusUrl", "externalSloUrl", "offset", "warmup"]
                   properties:
                     sloType:
+                      description: The type of the SLO. It must match 'lag trend'.
                       type: string
                     threshold:
+                      description: The threshold the SUT should meet for a sucessful experiment.
                       type: integer
                     prometheusUrl:
+                      description: Connection string for Promehteus.
                       type: string
                     externalSloUrl:
+                      description: Connection string for a external slo analysis.
                       type: string
                     offset:
+                      description: Hours by which the start and end timestamp will be shifted (for different timezones).
                       type: integer
                     warmup:
+                      description:  Seconds of time that are ignored in the analysis.
                       type: integer
               execution: # def execution config
+                description: Defines the overall parameter for the execution.
                 type: object
                 required: ["strategy", "duration", "repetitions", "restrictions"]
                 properties:
                   strategy:
+                    description: Defines the used strategy for the execution, either 'LinearSearch' or 'BinarySearch'
                     type: string
                   duration:
+                    description: Defines the duration of each experiment in seconds.
                     type: integer
                   repetitions:
+                    description: Numper of repititions for each experiments.
                     type: integer
                   loadGenerationDelay:
+                    description: Seconds to wait between the start of the SUT and the load generator.
                     type: integer
                   restrictions:
+                    description: List of restriction strategys used to delimit the search space.
                     type: array
                     items:
                       type: string
               configOverrides:
+                description:  List of patchers that are used to override existing configurations.
                 type: array
                 items:
                   type: object
                   properties:
                     patcher:
+                      description: Patcher used to patch a resource
                       type: object
+                      required: ["type", "resource"]
                       properties:
                         type:
+                          description: Type of the Patcher.
                           type: string
                           default: ""
                         resource:
+                          description: Specifies the Kubernetes resource to be patched.
                           type: string
                           default: ""
                         properties:
+                          description: (Optional) Patcher specific additional arguments.
                           type: object
                           additionalProperties: true
                           x-kubernetes-map-type: "granular"