Skip to content
Snippets Groups Projects
Commit 30a2e051 authored by Sören Henning's avatar Sören Henning
Browse files

Merge branch 'master' into 0.5-docs

parents e06521cd 55a59024
Branches
Tags
1 merge request!164Add Theodolite docs
Pipeline #5258 passed
Showing
with 569 additions and 294 deletions
......@@ -79,19 +79,21 @@ Resource Types:
</tr>
</thead>
<tbody><tr>
<td><b>name</b></td>
<td>string</td>
<td><b><a href="#benchmarkspecinfrastructure">infrastructure</a></b></td>
<td>object</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/>
(Optional) A list of file names that reference Kubernetes resources that are deployed on the cluster to create the required infrastructure.<br/>
<br/>
<i>Default</i>: map[]<br/>
</td>
<td>false</td>
</tr><tr>
<td><b><a href="#benchmarkspecappresourcesetsindex">appResourceSets</a></b></td>
<td>[]object</td>
<td><b>name</b></td>
<td>string</td>
<td>
The appResourceSets specifies all Kubernetes resources required to start the sut. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.<br/>
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>true</td>
<td>false</td>
</tr><tr>
<td><b><a href="#benchmarkspeckafkaconfig">kafkaConfig</a></b></td>
<td>object</td>
......@@ -100,8 +102,8 @@ Resource Types:
</td>
<td>true</td>
</tr><tr>
<td><b><a href="#benchmarkspecloadgenresourcesetsindex">loadGenResourceSets</a></b></td>
<td>[]object</td>
<td><b><a href="#benchmarkspecloadgenerator">loadGenerator</a></b></td>
<td>object</td>
<td>
The loadGenResourceSets specifies all Kubernetes resources required to start the load generator. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.<br/>
</td>
......@@ -120,15 +122,51 @@ Resource Types:
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><tr>
<td><b><a href="#benchmarkspecsut">sut</a></b></td>
<td>object</td>
<td>
The appResourceSets specifies all Kubernetes resources required to start the sut. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.<br/>
</td>
<td>true</td>
</tr></tbody>
</table>
### benchmark.spec.appResourceSets[index]
### benchmark.spec.infrastructure
<sup><sup>[↩ Parent](#benchmarkspec)</sup></sup>
(Optional) A list of file names that reference Kubernetes resources that are deployed on the cluster to create the required infrastructure.
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecinfrastructureresourcesindex">resources</a></b></td>
<td>[]object</td>
<td>
<br/>
<br/>
<i>Default</i>: []<br/>
</td>
<td>false</td>
</tr></tbody>
</table>
### benchmark.spec.infrastructure.resources[index]
<sup><sup>[↩ Parent](#benchmarkspecinfrastructure)</sup></sup>
<table>
......@@ -141,14 +179,14 @@ Resource Types:
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecappresourcesetsindexconfigmap">configMap</a></b></td>
<td><b><a href="#benchmarkspecinfrastructureresourcesindexconfigmap">configMap</a></b></td>
<td>object</td>
<td>
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b><a href="#benchmarkspecappresourcesetsindexfilesystem">fileSystem</a></b></td>
<td><b><a href="#benchmarkspecinfrastructureresourcesindexfilesystem">fileSystem</a></b></td>
<td>object</td>
<td>
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.<br/>
......@@ -158,8 +196,8 @@ Resource Types:
</table>
### benchmark.spec.appResourceSets[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecappresourcesetsindex)</sup></sup>
### benchmark.spec.infrastructure.resources[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecinfrastructureresourcesindex)</sup></sup>
......@@ -192,8 +230,8 @@ The configMap resourceSet loads the Kubernetes manifests from an Kubernetes conf
</table>
### benchmark.spec.appResourceSets[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecappresourcesetsindex)</sup></sup>
### benchmark.spec.infrastructure.resources[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecinfrastructureresourcesindex)</sup></sup>
......@@ -316,11 +354,40 @@ Contains the Kafka configuration.
</table>
### benchmark.spec.loadGenResourceSets[index]
### benchmark.spec.loadGenerator
<sup><sup>[↩ Parent](#benchmarkspec)</sup></sup>
The loadGenResourceSets specifies all Kubernetes resources required to start the load generator. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecloadgeneratorresourcesindex">resources</a></b></td>
<td>[]object</td>
<td>
<br/>
<br/>
<i>Default</i>: []<br/>
</td>
<td>false</td>
</tr></tbody>
</table>
### benchmark.spec.loadGenerator.resources[index]
<sup><sup>[↩ Parent](#benchmarkspecloadgenerator)</sup></sup>
<table>
......@@ -333,14 +400,14 @@ Contains the Kafka configuration.
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecloadgenresourcesetsindexconfigmap">configMap</a></b></td>
<td><b><a href="#benchmarkspecloadgeneratorresourcesindexconfigmap">configMap</a></b></td>
<td>object</td>
<td>
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b><a href="#benchmarkspecloadgenresourcesetsindexfilesystem">fileSystem</a></b></td>
<td><b><a href="#benchmarkspecloadgeneratorresourcesindexfilesystem">fileSystem</a></b></td>
<td>object</td>
<td>
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.<br/>
......@@ -350,8 +417,8 @@ Contains the Kafka configuration.
</table>
### benchmark.spec.loadGenResourceSets[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecloadgenresourcesetsindex)</sup></sup>
### benchmark.spec.loadGenerator.resources[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecloadgeneratorresourcesindex)</sup></sup>
......@@ -384,8 +451,8 @@ The configMap resourceSet loads the Kubernetes manifests from an Kubernetes conf
</table>
### benchmark.spec.loadGenResourceSets[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecloadgenresourcesetsindex)</sup></sup>
### benchmark.spec.loadGenerator.resources[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecloadgeneratorresourcesindex)</sup></sup>
......@@ -579,6 +646,137 @@ The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
</tr></tbody>
</table>
### benchmark.spec.sut
<sup><sup>[↩ Parent](#benchmarkspec)</sup></sup>
The appResourceSets specifies all Kubernetes resources required to start the sut. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecsutresourcesindex">resources</a></b></td>
<td>[]object</td>
<td>
<br/>
<br/>
<i>Default</i>: []<br/>
</td>
<td>false</td>
</tr></tbody>
</table>
### benchmark.spec.sut.resources[index]
<sup><sup>[↩ Parent](#benchmarkspecsut)</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="#benchmarkspecsutresourcesindexconfigmap">configMap</a></b></td>
<td>object</td>
<td>
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b><a href="#benchmarkspecsutresourcesindexfilesystem">fileSystem</a></b></td>
<td>object</td>
<td>
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.<br/>
</td>
<td>false</td>
</tr></tbody>
</table>
### benchmark.spec.sut.resources[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecsutresourcesindex)</sup></sup>
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody><tr>
<td><b>files</b></td>
<td>[]string</td>
<td>
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b>name</b></td>
<td>string</td>
<td>
The name of the configMap<br/>
</td>
<td>false</td>
</tr></tbody>
</table>
### benchmark.spec.sut.resources[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecsutresourcesindex)</sup></sup>
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
<th>Required</th>
</tr>
</thead>
<tbody><tr>
<td><b>files</b></td>
<td>[]string</td>
<td>
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.<br/>
</td>
<td>false</td>
</tr><tr>
<td><b>path</b></td>
<td>string</td>
<td>
The path to the folder which contains the Kubernetes manifests files.<br/>
</td>
<td>false</td>
</tr></tbody>
</table>
## execution
<sup><sup>[↩ Parent](#theodolitecomv1 )</sup></sup>
......
# Theodolite Execution Framework
**Please note: Most of the content in this directory is deprecated. Please refer to the `helm` directory for installing the latest version of Theodolite.**
This directory contains the Theodolite framework for executing scalability
benchmarks in a Kubernetes cluster. As Theodolite aims for executing benchmarks
in realistic execution environments, some third-party components are [required](#installation).
After everything is installed and configured, you can move on the [execution of
benchmarks](#execution).
*Note: The currently released version of Theodolite only allows running Kafka Streams benchmarks. With the upcoming release `0.5`, we plan to support arbitrary stream processing engines, in particular, our already available implementations for Apache Flink. To already run them now, please contact us.*
## Installation
For executing benchmarks, access to a Kubernetes cluster is required. If you already run other applications inside your
......
......@@ -3,7 +3,7 @@
###
kafkaClient:
enabled: true
enabled: false
nodeSelector: {}
......
......@@ -3,23 +3,25 @@ kind: benchmark
metadata:
name: uc1-flink
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc1-flink"
files:
- "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"
loadGenResourceSets:
- "flink-configuration-configmap.yaml"
- "taskmanager-deployment.yaml"
- "taskmanager-service.yaml"
- "service-monitor.yaml"
- "jobmanager-service.yaml"
- "jobmanager-deployment.yaml"
#- "jobmanager-rest-service.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
- "uc1-load-generator-deployment.yaml"
- "uc1-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,20 +3,22 @@ kind: benchmark
metadata:
name: uc1-kstreams
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc1-kstreams"
files:
- "uc1-kstreams/uc1-kstreams-deployment.yaml"
- "uc1-kstreams/uc1-kstreams-service.yaml"
- "uc1-kstreams/uc1-jmx-configmap.yaml"
- "uc1-kstreams/uc1-service-monitor.yaml"
loadGenResourceSets:
- "uc1-kstreams-deployment.yaml"
- "uc1-kstreams-service.yaml"
- "uc1-jmx-configmap.yaml"
- "uc1-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
- "uc1-load-generator-deployment.yaml"
- "uc1-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc1-kstreams"
appResourceSet:
sut:
resources:
- configMap:
name: "benchmark-resources-uc1-kstreams"
files:
- "uc1-kstreams/uc1-kstreams-deployment.yaml"
- "uc1-kstreams/uc1-kstreams-service.yaml"
- "uc1-kstreams/uc1-jmx-configmap.yaml"
- "uc1-kstreams/uc1-service-monitor.yaml"
loadGenResourceSet:
- "uc1-kstreams-deployment.yaml"
- "uc1-kstreams-service.yaml"
- "uc1-jmx-configmap.yaml"
- "uc1-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
- "uc1-load-generator-deployment.yaml"
- "uc1-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,23 +3,25 @@ kind: benchmark
metadata:
name: uc2-flink
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc2-flink"
files:
- "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"
loadGenResourceSets:
- "flink-configuration-configmap.yaml"
- "taskmanager-deployment.yaml"
- "taskmanager-service.yaml"
- "service-monitor.yaml"
- "jobmanager-service.yaml"
- "jobmanager-deployment.yaml"
#- "jobmanager-rest-service.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
- "uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,20 +3,22 @@ kind: benchmark
metadata:
name: uc2-kstreams
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc2-kstreams"
files:
- "uc2-kstreams/uc2-kstreams-deployment.yaml"
- "uc2-kstreams/uc2-kstreams-service.yaml"
- "uc2-kstreams/uc2-jmx-configmap.yaml"
- "uc2-kstreams/uc2-service-monitor.yaml"
loadGenResourceSets:
- "uc2-kstreams-deployment.yaml"
- "uc2-kstreams-service.yaml"
- "uc2-jmx-configmap.yaml"
- "uc2-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
- "uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc2-kstreams"
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc2-kstreams"
files:
- "uc2-kstreams/uc2-kstreams-deployment.yaml"
- "uc2-kstreams/uc2-kstreams-service.yaml"
- "uc2-kstreams/uc2-jmx-configmap.yaml"
- "uc2-kstreams/uc2-service-monitor.yaml"
loadGenResourceSets:
- "uc2-kstreams-deployment.yaml"
- "uc2-kstreams-service.yaml"
- "uc2-jmx-configmap.yaml"
- "uc2-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
- "uc2-load-generator-deployment.yaml"
- "uc2-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,23 +3,25 @@ kind: benchmark
metadata:
name: uc3-flink
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc3-flink"
files:
- "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"
loadGenResourceSets:
- "flink-configuration-configmap.yaml"
- "taskmanager-deployment.yaml"
- "taskmanager-service.yaml"
- "service-monitor.yaml"
- "jobmanager-service.yaml"
- "jobmanager-deployment.yaml"
#- "jobmanager-rest-service.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
- "uc3-load-generator-deployment.yaml"
- "uc3-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,20 +3,22 @@ kind: benchmark
metadata:
name: uc3-kstreams
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc3-kstreams"
files:
- "uc3-kstreams/uc3-kstreams-deployment.yaml"
- "uc3-kstreams/uc3-kstreams-service.yaml"
- "uc3-kstreams/uc3-jmx-configmap.yaml"
- "uc3-kstreams/uc3-service-monitor.yaml"
loadGenResourceSets:
- "uc3-kstreams-deployment.yaml"
- "uc3-kstreams-service.yaml"
- "uc3-jmx-configmap.yaml"
- "uc3-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
- "uc3-load-generator-deployment.yaml"
- "uc3-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc3-kstreams"
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc3-kstreams"
files:
- "uc3-kstreams/uc3-kstreams-deployment.yaml"
- "uc3-kstreams/uc3-kstreams-service.yaml"
- "uc3-kstreams/uc3-jmx-configmap.yaml"
- "uc3-kstreams/uc3-service-monitor.yaml"
loadGenResourceSets:
- "uc3-kstreams-deployment.yaml"
- "uc3-kstreams-service.yaml"
- "uc3-jmx-configmap.yaml"
- "uc3-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
- "uc3-load-generator-deployment.yaml"
- "uc3-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,23 +3,25 @@ kind: benchmark
metadata:
name: uc4-flink
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc4-flink"
files:
- "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"
loadGenResourceSets:
- "flink-configuration-configmap.yaml"
- "taskmanager-deployment.yaml"
- "taskmanager-service.yaml"
- "service-monitor.yaml"
- "jobmanager-service.yaml"
- "jobmanager-deployment.yaml"
#- "jobmanager-rest-service.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
- "uc4-load-generator-deployment.yaml"
- "uc4-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,20 +3,22 @@ kind: benchmark
metadata:
name: uc4-kstreams
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc4-kstreams"
files:
- "uc4-kstreams/uc4-kstreams-deployment.yaml"
- "uc4-kstreams/uc4-kstreams-service.yaml"
- "uc4-kstreams/uc4-jmx-configmap.yaml"
- "uc4-kstreams/uc4-service-monitor.yaml"
loadGenResourceSets:
- "uc4-kstreams-deployment.yaml"
- "uc4-kstreams-service.yaml"
- "uc4-jmx-configmap.yaml"
- "uc4-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
- "uc4-load-generator-deployment.yaml"
- "uc4-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc4-kstreams"
appResourceSets:
sut:
resources:
- configMap:
name: "benchmark-resources-uc4-kstreams"
files:
- "uc4-kstreams/uc4-kstreams-deployment.yaml"
- "uc4-kstreams/uc4-kstreams-service.yaml"
- "uc4-kstreams/uc4-jmx-configmap.yaml"
- "uc4-kstreams/uc4-service-monitor.yaml"
loadGenResourceSets:
- "uc4-kstreams-deployment.yaml"
- "uc4-kstreams-service.yaml"
- "uc4-jmx-configmap.yaml"
- "uc4-service-monitor.yaml"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
- "uc4-load-generator-deployment.yaml"
- "uc4-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -20,11 +20,123 @@ spec:
properties:
spec:
type: object
required: ["appResourceSets", "loadGenResourceSets", "resourceTypes", "loadTypes", "kafkaConfig"]
required: ["sut", "loadGenerator", "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
infrastructure:
description: (Optional) A list of file names that reference Kubernetes resources that are deployed on the cluster to create the required infrastructure.
type: object
default: {}
properties:
resources:
type: array
default: []
items:
type: object
oneOf:
- required: [ configMap ]
- required: [ fileSystem ]
properties:
configMap:
description: The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
type: object
properties:
name:
description: The name of the configMap
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
fileSystem:
description: The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
type: object
properties:
path:
description: The path to the folder which contains the Kubernetes manifests files.
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
sut:
description: The appResourceSets specifies all Kubernetes resources required to start the sut. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
type: object
properties:
resources:
type: array
default: [ ]
items:
type: object
oneOf:
- required: [ configMap ]
- required: [ fileSystem ]
properties:
configMap:
description: The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
type: object
properties:
name:
description: The name of the configMap
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
fileSystem:
description: The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
type: object
properties:
path:
description: The path to the folder which contains the Kubernetes manifests files.
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
loadGenerator:
description: The loadGenResourceSets specifies all Kubernetes resources required to start the load generator. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
type: object
properties:
resources:
type: array
default: []
items:
type: object
oneOf:
- required: [ configMap ]
- required: [ fileSystem ]
properties:
configMap:
description: The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
type: object
properties:
name:
description: The name of the configMap
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
fileSystem:
description: The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
type: object
properties:
path:
description: The path to the folder which contains the Kubernetes manifests files.
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
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
......@@ -123,72 +235,6 @@ spec:
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
appResourceSets:
description: The appResourceSets specifies all Kubernetes resources required to start the sut. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
type: array
items:
type: object
oneOf:
- required: [configMap]
- required: [fileSystem]
properties:
configMap:
description: The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
type: object
properties:
name:
description: The name of the configMap
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
fileSystem:
description: The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
type: object
properties:
path:
description: The path to the folder which contains the Kubernetes manifests files.
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
loadGenResourceSets:
description: The loadGenResourceSets specifies all Kubernetes resources required to start the load generator. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
type: array
items:
type: object
oneOf:
- required: [configMap]
- required: [fileSystem]
properties:
configMap:
description: The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
type: object
properties:
name:
description: The name of the configMap
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
fileSystem:
description: The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
type: object
properties:
path:
description: The path to the folder which contains the Kubernetes manifests files.
type: string
files:
description: (Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded.
type: array
items:
type: string
additionalPrinterColumns:
- name: Age
type: date
......
......@@ -3,12 +3,14 @@ kind: benchmark
metadata:
name: uc1-kstreams
spec:
appResourceSets:
sut:
resources:
- configMap:
name: "example-configmap"
files:
- "uc1-kstreams-deployment.yaml"
loadGenResourceSets:
loadGenerator:
resources:
- configMap:
name: "example-configmap"
files:
......
name: "uc1-kstreams"
appResourceSets:
infrastructure: []
sut:
resources:
- configMap:
name: "example-configmap"
files:
- "uc1-kstreams-deployment.yaml"
loadGenResourceSets:
loadGenerator:
resources:
- configMap:
name: "example-configmap"
files:
......
......@@ -14,6 +14,9 @@ import theodolite.util.Resource
@RegisterForReflection
interface Benchmark {
fun setupInfrastructure()
fun teardownInfrastructure()
/**
* Builds a Deployment that can be deployed.
* @return a BenchmarkDeployment.
......
......@@ -7,8 +7,7 @@ package theodolite.benchmark
interface BenchmarkDeployment {
/**
* Setup a benchmark. This method is responsible for deploying the resources
* and organize the needed infrastructure.
* Setup a benchmark. This method is responsible for deploying the resources of a benchmark.
*/
fun setup()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment