Skip to content
Snippets Groups Projects
Commit 827432ca authored by Benedikt Wetzel's avatar Benedikt Wetzel
Browse files

Enhance crd benchmark schemata by adding an resources field, small enhancements

parent 72006cf5
No related branches found
No related tags found
1 merge request!197Add support for long-running infrastructure components
Showing
with 439 additions and 381 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="#benchmarkspecinfrastructureindex">infrastructure</a></b></td>
<td>[]object</td>
<td><b>name</b></td>
<td>string</td>
<td>
A list of file names that reference Kubernetes resources that are deployed on the cluster to create the required infrastructure.<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="#benchmarkspecloadgeneratorindex">loadGenerator</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>
......@@ -121,8 +123,8 @@ Resource Types:
</td>
<td>true</td>
</tr><tr>
<td><b><a href="#benchmarkspecsutindex">sut</a></b></td>
<td>[]object</td>
<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>
......@@ -131,11 +133,40 @@ Resource Types:
</table>
### benchmark.spec.infrastructure[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>
......@@ -148,14 +179,14 @@ Resource Types:
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecinfrastructureindexconfigmap">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="#benchmarkspecinfrastructureindexfilesystem">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/>
......@@ -165,8 +196,8 @@ Resource Types:
</table>
### benchmark.spec.infrastructure[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecinfrastructureindex)</sup></sup>
### benchmark.spec.infrastructure.resources[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecinfrastructureresourcesindex)</sup></sup>
......@@ -199,8 +230,8 @@ The configMap resourceSet loads the Kubernetes manifests from an Kubernetes conf
</table>
### benchmark.spec.infrastructure[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecinfrastructureindex)</sup></sup>
### benchmark.spec.infrastructure.resources[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecinfrastructureresourcesindex)</sup></sup>
......@@ -323,11 +354,40 @@ Contains the Kafka configuration.
</table>
### benchmark.spec.loadGenerator[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>
......@@ -340,14 +400,14 @@ Contains the Kafka configuration.
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecloadgeneratorindexconfigmap">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="#benchmarkspecloadgeneratorindexfilesystem">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/>
......@@ -357,8 +417,8 @@ Contains the Kafka configuration.
</table>
### benchmark.spec.loadGenerator[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecloadgeneratorindex)</sup></sup>
### benchmark.spec.loadGenerator.resources[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecloadgeneratorresourcesindex)</sup></sup>
......@@ -391,8 +451,8 @@ The configMap resourceSet loads the Kubernetes manifests from an Kubernetes conf
</table>
### benchmark.spec.loadGenerator[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecloadgeneratorindex)</sup></sup>
### benchmark.spec.loadGenerator.resources[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecloadgeneratorresourcesindex)</sup></sup>
......@@ -587,11 +647,40 @@ The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
</table>
### benchmark.spec.sut[index]
### 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>
......@@ -604,14 +693,14 @@ The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
</tr>
</thead>
<tbody><tr>
<td><b><a href="#benchmarkspecsutindexconfigmap">configMap</a></b></td>
<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="#benchmarkspecsutindexfilesystem">fileSystem</a></b></td>
<td><b><a href="#benchmarkspecsutresourcesindexfilesystem">fileSystem</a></b></td>
<td>object</td>
<td>
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.<br/>
......@@ -621,8 +710,8 @@ The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
</table>
### benchmark.spec.sut[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecsutindex)</sup></sup>
### benchmark.spec.sut.resources[index].configMap
<sup><sup>[↩ Parent](#benchmarkspecsutresourcesindex)</sup></sup>
......@@ -655,8 +744,8 @@ The configMap resourceSet loads the Kubernetes manifests from an Kubernetes conf
</table>
### benchmark.spec.sut[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecsutindex)</sup></sup>
### benchmark.spec.sut.resources[index].fileSystem
<sup><sup>[↩ Parent](#benchmarkspecsutresourcesindex)</sup></sup>
......
......@@ -3,24 +3,25 @@ kind: benchmark
metadata:
name: uc1-flink
spec:
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,21 +3,22 @@ kind: benchmark
metadata:
name: uc1-kstreams
spec:
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc1-kstreams"
infrastructure: []
appResourceSet:
- 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:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
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"
loadGenerator:
resources:
- configMap:
name: "benchmark-resources-uc1-loadgen"
files:
- "uc1-kstreams/uc1-load-generator-deployment.yaml"
- "uc1-kstreams/uc1-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,24 +3,25 @@ kind: benchmark
metadata:
name: uc2-flink
spec:
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,8 +3,8 @@ kind: benchmark
metadata:
name: uc2-kstreams
spec:
infrastructure: []
sut:
resources:
- configMap:
name: "benchmark-resources-uc2-kstreams"
files:
......@@ -13,11 +13,12 @@ spec:
- "uc2-kstreams/uc2-jmx-configmap.yaml"
- "uc2-kstreams/uc2-service-monitor.yaml"
loadGenerator:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc2-kstreams"
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc2-loadgen"
files:
- "uc2-kstreams/uc2-load-generator-deployment.yaml"
- "uc2-kstreams/uc2-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
apiVersion: theodolite.com/v1
kind: execution
metadata:
name: uc3-flink-template
spec:
benchmark: "uc3-flink"
load:
loadType: "NumSensors"
loadValues: [100]
resources:
resourceType: "Instances"
resourceValues: [1]
slos:
- sloType: "lag trend percent"
prometheusUrl: "http://prometheus-operated:9090"
offset: 0
properties:
percent: 0.05
externalSloUrl: "http://localhost:80/evaluate-slope"
warmup: 60 # in seconds
execution:
strategy: "LinearSearch"
duration: 300 # in seconds
repetitions: 1
loadGenerationDelay: 30 # in seconds
restrictions:
- "LowerBound"
configOverrides:
- patcher:
type: "ResourceLimitPatcher"
resource: "uc3-flink/jobmanager-deployment.yaml"
properties:
container: "jobmanager"
limitedResource: "cpu"
value: "200m"
- patcher:
type: "ResourceLimitPatcher"
resource: "uc3-flink/jobmanager-deployment.yaml"
properties:
container: "jobmanager"
limitedResource: "memory"
value: "1Gi"
- patcher:
type: "ResourceLimitPatcher"
resource: "uc3-flink/taskmanager-deployment.yaml"
properties:
container: "taskmanager"
limitedResource: "cpu"
value: "200m"
- patcher:
type: "ResourceLimitPatcher"
resource: "uc3-flink/taskmanager-deployment.yaml"
properties:
container: "taskmanager"
limitedResource: "memory"
value: "1Gi"
\ No newline at end of file
......@@ -3,24 +3,25 @@ kind: benchmark
metadata:
name: uc3-flink
spec:
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,21 +3,22 @@ kind: benchmark
metadata:
name: uc3-kstreams
spec:
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc3-kstreams"
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc3-loadgen"
files:
- "uc3-kstreams/uc3-load-generator-deployment.yaml"
- "uc3-kstreams/uc3-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,24 +3,25 @@ kind: benchmark
metadata:
name: uc4-flink
spec:
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -3,21 +3,22 @@ kind: benchmark
metadata:
name: uc4-kstreams
spec:
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
name: "uc4-kstreams"
infrastructure: []
sut:
- 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"
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"
loadGenerator:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
resources:
- configMap:
name: "benchmark-resources-uc4-loadgen"
files:
- "uc4-kstreams/uc4-load-generator-deployment.yaml"
- "uc4-kstreams/uc4-load-generator-service.yaml"
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -20,110 +20,123 @@ spec:
properties:
spec:
type: object
required: ["infrastructure", "sut", "loadGenerator", "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: A list of file names that reference Kubernetes resources that are deployed on the cluster to create the required infrastructure.
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.
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:
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
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: 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:
resources:
type: array
default: [ ]
items:
type: object
oneOf:
- required: [ configMap ]
- required: [ fileSystem ]
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
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: 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:
resources:
type: array
default: []
items:
type: object
oneOf:
- required: [ configMap ]
- required: [ fileSystem ]
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
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
......
......@@ -3,18 +3,19 @@ kind: benchmark
metadata:
name: uc1-kstreams
spec:
infrastructure: []
sut:
- configMap:
name: "example-configmap"
files:
- "uc1-kstreams-deployment.yaml"
resources:
- configMap:
name: "example-configmap"
files:
- "uc1-kstreams-deployment.yaml"
loadGenerator:
- configMap:
name: "example-configmap"
files:
- uc1-load-generator-service.yaml
- uc1-load-generator-deployment.yaml
resources:
- configMap:
name: "example-configmap"
files:
- uc1-load-generator-service.yaml
- uc1-load-generator-deployment.yaml
resourceTypes:
- typeName: "Instances"
patchers:
......
apiVersion: v1
kind: Service
metadata:
name: test-service
labels:
app: test-service
spec:
type: ClusterIP
clusterIP: None
selector:
app: test
ports:
- name: coordination
port: 5701
targetPort: 5701
protocol: TCP
name: "uc1-kstreams"
infrastructure: []
sut:
- configMap:
name: "example-configmap"
files:
- "uc1-kstreams-deployment.yaml"
resources:
- configMap:
name: "example-configmap"
files:
- "uc1-kstreams-deployment.yaml"
loadGenerator:
- configMap:
name: "example-configmap"
files:
- uc1-load-generator-service.yaml
- uc1-load-generator-deployment.yaml
resources:
- configMap:
name: "example-configmap"
files:
- uc1-load-generator-service.yaml
- uc1-load-generator-deployment.yaml
resourceTypes:
- typeName: "Instances"
patchers:
......
......@@ -40,9 +40,9 @@ class KubernetesBenchmark : KubernetesResource, Benchmark {
lateinit var resourceTypes: List<TypeName>
lateinit var loadTypes: List<TypeName>
lateinit var kafkaConfig: KafkaConfig
lateinit var infrastructure: List<ResourceSets>
lateinit var sut: List<ResourceSets>
lateinit var loadGenerator: List<ResourceSets>
lateinit var infrastructure: Resources
lateinit var sut: Resources
lateinit var loadGenerator: Resources
var namespace = System.getenv("NAMESPACE") ?: DEFAULT_NAMESPACE
@Transient
......@@ -59,14 +59,14 @@ class KubernetesBenchmark : KubernetesResource, Benchmark {
override fun setupInfrastructure() {
val kubernetesManager = K8sManager(this.client)
loadKubernetesResources(this.infrastructure)
loadKubernetesResources(this.infrastructure.resources)
.map{it.second}
.forEach { kubernetesManager.deploy(it) }
}
override fun teardownInfrastructure() {
val kubernetesManager = K8sManager(this.client)
loadKubernetesResources(this.infrastructure)
loadKubernetesResources(this.infrastructure.resources)
.map{it.second}
.forEach { kubernetesManager.remove(it) }
}
......@@ -89,8 +89,8 @@ class KubernetesBenchmark : KubernetesResource, Benchmark {
): BenchmarkDeployment {
logger.info { "Using $namespace as namespace." }
val appResources = loadKubernetesResources(this.sut)
val loadGenResources = loadKubernetesResources(this.loadGenerator)
val appResources = loadKubernetesResources(this.sut.resources)
val loadGenResources = loadKubernetesResources(this.loadGenerator.resources)
val patcherFactory = PatcherFactory()
......
package theodolite.benchmark
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import com.fasterxml.jackson.databind.annotation.JsonSerialize
import io.quarkus.runtime.annotations.RegisterForReflection
@JsonDeserialize
@RegisterForReflection
class Resources {
lateinit var resources: List<ResourceSets>
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment