API Reference
Packages:
theodolite.rocks/v1beta1
Resource Types:
benchmark
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string | theodolite.rocks/v1beta1 | true |
kind | string | benchmark | true |
metadata | object | Refer to the Kubernetes API documentation for the fields of the `metadata` field. | true |
spec | object |
|
true |
status | object |
|
false |
benchmark.spec
Name | Type | Description | Required |
---|---|---|---|
loadGenerator | object |
The loadGenResourceSets specifies all Kubernetes resources required to start the load generator. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet. |
true |
loadTypes | []object |
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. |
true |
resourceTypes | []object |
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. |
true |
slos | []object |
List of resource values for the specified resource type. |
true |
sut | object |
The appResourceSets specifies all Kubernetes resources required to start the sut. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet. |
true |
infrastructure | object |
(Optional) A list of file names that reference Kubernetes resources that are deployed on the cluster to create the required infrastructure. Default: map[] |
false |
kafkaConfig | object |
Contains the Kafka configuration. |
false |
name | string |
This field exists only for technical reasons and should not be set by the user. The value of the field will be overwritten. Default: |
false |
waitForResourcesEnabled | boolean |
If true, Theodolite waits to create the resource for the SUT until the infrastructure resources are ready, and analogously, Theodolite waits to create the load-gen resource until the resources of the SUT are ready. Default: false |
false |
benchmark.spec.loadGenerator
The loadGenResourceSets specifies all Kubernetes resources required to start the load generator. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
Name | Type | Description | Required |
---|---|---|---|
afterActions | []object |
Load generator after actions are executed after the teardown of the load generator. Default: [] |
false |
beforeActions | []object |
Load generator before actions are executed before the load generator is started. Default: [] |
false |
resources | []object |
Default: [] |
false |
benchmark.spec.loadGenerator.afterActions[index]
Name | Type | Description | Required |
---|---|---|---|
delete | object |
Specifies deletion of a resource. |
false |
exec | object |
Specifies a command that gets executed within a Container of a Pod |
false |
benchmark.spec.loadGenerator.afterActions[index].delete
Specifies deletion of a resource.
Name | Type | Description | Required |
---|---|---|---|
selector | object |
Defines how to select the resource to delete. |
true |
benchmark.spec.loadGenerator.afterActions[index].delete.selector
Defines how to select the resource to delete.
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string |
Specifies the api/version of the resource that should be deleted, e.g. 'kafka.strimzi.io/v1beta2'. |
true |
kind | string |
Specifies the Kind of the resource that should be deleted, e.g. 'KafkaTopic'. |
true |
nameRegex | string |
Specifies a regular expression that is matched with the metadata.name property of all resources with given api/version and Kind that should be deleted. Default: * |
false |
benchmark.spec.loadGenerator.afterActions[index].exec
Specifies a command that gets executed within a Container of a Pod
Name | Type | Description | Required |
---|---|---|---|
command | []string |
The command to be executed as string array. |
true |
selector | object |
The selector specifies which resource should be selected for the execution of the command. |
true |
timeoutSeconds | integer |
Specifies the timeout (in seconds) for the specified command. |
true |
benchmark.spec.loadGenerator.afterActions[index].exec.selector
The selector specifies which resource should be selected for the execution of the command.
Name | Type | Description | Required |
---|---|---|---|
container | string |
Specifies the container. Default: |
false |
pod | object |
Specifies the pod. |
false |
benchmark.spec.loadGenerator.afterActions[index].exec.selector.pod
Specifies the pod.
Name | Type | Description | Required |
---|---|---|---|
matchLabels | map[string]string |
The matchLabels of the desired pod. Default: map[] |
false |
benchmark.spec.loadGenerator.beforeActions[index]
Name | Type | Description | Required |
---|---|---|---|
delete | object |
Specifies deletion of a resource. |
false |
exec | object |
Specifies a command that gets executed within a Container of a Pod |
false |
benchmark.spec.loadGenerator.beforeActions[index].delete
Specifies deletion of a resource.
Name | Type | Description | Required |
---|---|---|---|
selector | object |
Defines how to select the resource to delete. |
true |
benchmark.spec.loadGenerator.beforeActions[index].delete.selector
Defines how to select the resource to delete.
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string |
Specifies the api/version of the resource that should be deleted, e.g. 'kafka.strimzi.io/v1beta2'. |
true |
kind | string |
Specifies the Kind of the resource that should be deleted, e.g. 'KafkaTopic'. |
true |
nameRegex | string |
Specifies a regular expression that is matched with the metadata.name property of all resources with given api/version and Kind that should be deleted. Default: * |
false |
benchmark.spec.loadGenerator.beforeActions[index].exec
Specifies a command that gets executed within a Container of a Pod
Name | Type | Description | Required |
---|---|---|---|
command | []string |
The command to be executed as string array. |
true |
selector | object |
The selector specifies which resource should be selected for the execution of the command. |
true |
timeoutSeconds | integer |
Specifies the timeout (in seconds) for the specified command. |
true |
benchmark.spec.loadGenerator.beforeActions[index].exec.selector
The selector specifies which resource should be selected for the execution of the command.
Name | Type | Description | Required |
---|---|---|---|
container | string |
Specifies the container. Default: |
false |
pod | object |
Specifies the pod. |
false |
benchmark.spec.loadGenerator.beforeActions[index].exec.selector.pod
Specifies the pod.
Name | Type | Description | Required |
---|---|---|---|
matchLabels | map[string]string |
The matchLabels of the desired pod. Default: map[] |
false |
benchmark.spec.loadGenerator.resources[index]
Name | Type | Description | Required |
---|---|---|---|
configMap | object |
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap. |
false |
fileSystem | object |
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem. |
false |
benchmark.spec.loadGenerator.resources[index].configMap
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
Name | Type | Description | Required |
---|---|---|---|
files | []string |
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded. |
false |
name | string |
The name of the configMap |
false |
benchmark.spec.loadGenerator.resources[index].fileSystem
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
Name | Type | Description | Required |
---|---|---|---|
files | []string |
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded. |
false |
path | string |
The path to the folder which contains the Kubernetes manifests files. |
false |
benchmark.spec.loadTypes[index]
Name | Type | Description | Required |
---|---|---|---|
patchers | []object |
List of patchers used to scale this resource type. |
true |
typeName | string |
Name of the load type. |
true |
benchmark.spec.loadTypes[index].patchers[index]
Name | Type | Description | Required |
---|---|---|---|
resource | string |
Specifies the Kubernetes resource to be patched. Default: |
true |
type | string |
Type of the Patcher. Default: |
true |
properties | map[string]string |
(Optional) Patcher specific additional arguments. Default: map[] |
false |
benchmark.spec.resourceTypes[index]
Name | Type | Description | Required |
---|---|---|---|
patchers | []object |
List of patchers used to scale this resource type. |
true |
typeName | string |
Name of the resource type. |
true |
benchmark.spec.resourceTypes[index].patchers[index]
Name | Type | Description | Required |
---|---|---|---|
resource | string |
Specifies the Kubernetes resource to be patched. Default: |
true |
type | string |
Type of the patcher. Default: |
true |
properties | map[string]string |
(Optional) Patcher specific additional arguments. Default: map[] |
false |
benchmark.spec.slos[index]
Name | Type | Description | Required |
---|---|---|---|
name | string |
The name of the SLO. |
true |
offset | integer |
Hours by which the start and end timestamp will be shifted (for different timezones). |
true |
prometheusUrl | string |
Connection string for Prometheus. |
true |
sloType | string |
The type of the SLO. It must match 'lag trend'. |
true |
properties | map[string]string |
(Optional) SLO specific additional arguments. Default: map[] |
false |
benchmark.spec.sut
The appResourceSets specifies all Kubernetes resources required to start the sut. A resourceSet can be either a configMap resourceSet or a fileSystem resourceSet.
Name | Type | Description | Required |
---|---|---|---|
afterActions | []object |
SUT after actions are executed after the teardown of the SUT. Default: [] |
false |
beforeActions | []object |
SUT before actions are executed before the SUT is started. Default: [] |
false |
resources | []object |
Default: [] |
false |
benchmark.spec.sut.afterActions[index]
Name | Type | Description | Required |
---|---|---|---|
delete | object |
Specifies deletion of a resource. |
false |
exec | object |
Specifies a command that gets executed within a Container of a Pod |
false |
benchmark.spec.sut.afterActions[index].delete
Specifies deletion of a resource.
Name | Type | Description | Required |
---|---|---|---|
selector | object |
Defines how to select the resource to delete. |
true |
benchmark.spec.sut.afterActions[index].delete.selector
Defines how to select the resource to delete.
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string |
Specifies the api/version of the resource that should be deleted, e.g. 'kafka.strimzi.io/v1beta2'. |
true |
kind | string |
Specifies the Kind of the resource that should be deleted, e.g. 'KafkaTopic'. |
true |
nameRegex | string |
Specifies a regular expression that is matched with the metadata.name property of all resources with given api/version and Kind that should be deleted. Default: * |
false |
benchmark.spec.sut.afterActions[index].exec
Specifies a command that gets executed within a Container of a Pod
Name | Type | Description | Required |
---|---|---|---|
command | []string |
The command to be executed as string array. |
true |
selector | object |
The selector specifies which resource should be selected for the execution of the command. |
true |
timeoutSeconds | integer |
Specifies the timeout (in seconds) for the specified command. |
true |
benchmark.spec.sut.afterActions[index].exec.selector
The selector specifies which resource should be selected for the execution of the command.
Name | Type | Description | Required |
---|---|---|---|
container | string |
Specifies the container. Default: |
false |
pod | object |
Specifies the pod. |
false |
benchmark.spec.sut.afterActions[index].exec.selector.pod
Specifies the pod.
Name | Type | Description | Required |
---|---|---|---|
matchLabels | map[string]string |
The matchLabels of the desired pod. Default: map[] |
false |
benchmark.spec.sut.beforeActions[index]
Name | Type | Description | Required |
---|---|---|---|
delete | object |
Specifies deletion of a resource. |
false |
exec | object |
Specifies a command that gets executed within a Container of a Pod |
false |
benchmark.spec.sut.beforeActions[index].delete
Specifies deletion of a resource.
Name | Type | Description | Required |
---|---|---|---|
selector | object |
Defines how to select the resource to delete. |
true |
benchmark.spec.sut.beforeActions[index].delete.selector
Defines how to select the resource to delete.
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string |
Specifies the api/version of the resource that should be deleted, e.g. 'kafka.strimzi.io/v1beta2'. |
true |
kind | string |
Specifies the Kind of the resource that should be deleted, e.g. 'KafkaTopic'. |
true |
nameRegex | string |
Specifies a regular expression that is matched with the metadata.name property of all resources with given api/version and Kind that should be deleted. Default: * |
false |
benchmark.spec.sut.beforeActions[index].exec
Specifies a command that gets executed within a Container of a Pod
Name | Type | Description | Required |
---|---|---|---|
command | []string |
The command to be executed as string array. |
true |
selector | object |
The selector specifies which resource should be selected for the execution of the command. |
true |
timeoutSeconds | integer |
Specifies the timeout (in seconds) for the specified command. |
true |
benchmark.spec.sut.beforeActions[index].exec.selector
The selector specifies which resource should be selected for the execution of the command.
Name | Type | Description | Required |
---|---|---|---|
container | string |
Specifies the container. Default: |
false |
pod | object |
Specifies the pod. |
false |
benchmark.spec.sut.beforeActions[index].exec.selector.pod
Specifies the pod.
Name | Type | Description | Required |
---|---|---|---|
matchLabels | map[string]string |
The matchLabels of the desired pod. Default: map[] |
false |
benchmark.spec.sut.resources[index]
Name | Type | Description | Required |
---|---|---|---|
configMap | object |
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap. |
false |
fileSystem | object |
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem. |
false |
benchmark.spec.sut.resources[index].configMap
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
Name | Type | Description | Required |
---|---|---|---|
files | []string |
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded. |
false |
name | string |
The name of the configMap |
false |
benchmark.spec.sut.resources[index].fileSystem
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
Name | Type | Description | Required |
---|---|---|---|
files | []string |
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded. |
false |
path | string |
The path to the folder which contains the Kubernetes manifests files. |
false |
benchmark.spec.infrastructure
(Optional) A list of file names that reference Kubernetes resources that are deployed on the cluster to create the required infrastructure.
Name | Type | Description | Required |
---|---|---|---|
afterActions | []object |
Infrastructure after actions are executed after the teardown of the infrastructure. Default: [] |
false |
beforeActions | []object |
Infrastructure before actions are executed before the infrastructure is set up. Default: [] |
false |
resources | []object |
Default: [] |
false |
benchmark.spec.infrastructure.afterActions[index]
Name | Type | Description | Required |
---|---|---|---|
delete | object |
Specifies deletion of a resource. |
false |
exec | object |
Specifies a command that gets executed within a Container of a Pod |
false |
benchmark.spec.infrastructure.afterActions[index].delete
Specifies deletion of a resource.
Name | Type | Description | Required |
---|---|---|---|
selector | object |
Defines how to select the resource to delete. |
true |
benchmark.spec.infrastructure.afterActions[index].delete.selector
Defines how to select the resource to delete.
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string |
Specifies the api/version of the resource that should be deleted, e.g. 'kafka.strimzi.io/v1beta2'. |
true |
kind | string |
Specifies the Kind of the resource that should be deleted, e.g. 'KafkaTopic'. |
true |
nameRegex | string |
Specifies a regular expression that is matched with the metadata.name property of all resources with given api/version and Kind that should be deleted. Default: * |
false |
benchmark.spec.infrastructure.afterActions[index].exec
Specifies a command that gets executed within a Container of a Pod
Name | Type | Description | Required |
---|---|---|---|
command | []string |
The command to be executed as string array. |
true |
selector | object |
The selector specifies which resource should be selected for the execution of the command. |
true |
timeoutSeconds | integer |
Specifies the timeout (in seconds) for the specified command. |
true |
benchmark.spec.infrastructure.afterActions[index].exec.selector
The selector specifies which resource should be selected for the execution of the command.
Name | Type | Description | Required |
---|---|---|---|
container | string |
Specifies the container. Default: |
false |
pod | object |
Specifies the pod. |
false |
benchmark.spec.infrastructure.afterActions[index].exec.selector.pod
Specifies the pod.
Name | Type | Description | Required |
---|---|---|---|
matchLabels | map[string]string |
The matchLabels of the desired pod. Default: map[] |
false |
benchmark.spec.infrastructure.beforeActions[index]
Name | Type | Description | Required |
---|---|---|---|
delete | object |
Specifies deletion of a resource. |
false |
exec | object |
Specifies a command that gets executed within a Container of a Pod |
false |
benchmark.spec.infrastructure.beforeActions[index].delete
Specifies deletion of a resource.
Name | Type | Description | Required |
---|---|---|---|
selector | object |
Defines how to select the resource to delete. |
true |
benchmark.spec.infrastructure.beforeActions[index].delete.selector
Defines how to select the resource to delete.
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string |
Specifies the api/version of the resource that should be deleted, e.g. 'kafka.strimzi.io/v1beta2'. |
true |
kind | string |
Specifies the Kind of the resource that should be deleted, e.g. 'KafkaTopic'. |
true |
nameRegex | string |
Specifies a regular expression that is matched with the metadata.name property of all resources with given api/version and Kind that should be deleted. Default: * |
false |
benchmark.spec.infrastructure.beforeActions[index].exec
Specifies a command that gets executed within a Container of a Pod
Name | Type | Description | Required |
---|---|---|---|
command | []string |
The command to be executed as string array. |
true |
selector | object |
The selector specifies which resource should be selected for the execution of the command. |
true |
timeoutSeconds | integer |
Specifies the timeout (in seconds) for the specified command. |
true |
benchmark.spec.infrastructure.beforeActions[index].exec.selector
The selector specifies which resource should be selected for the execution of the command.
Name | Type | Description | Required |
---|---|---|---|
container | string |
Specifies the container. Default: |
false |
pod | object |
Specifies the pod. |
false |
benchmark.spec.infrastructure.beforeActions[index].exec.selector.pod
Specifies the pod.
Name | Type | Description | Required |
---|---|---|---|
matchLabels | map[string]string |
The matchLabels of the desired pod. Default: map[] |
false |
benchmark.spec.infrastructure.resources[index]
Name | Type | Description | Required |
---|---|---|---|
configMap | object |
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap. |
false |
fileSystem | object |
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem. |
false |
benchmark.spec.infrastructure.resources[index].configMap
The configMap resourceSet loads the Kubernetes manifests from an Kubernetes configMap.
Name | Type | Description | Required |
---|---|---|---|
files | []string |
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded. |
false |
name | string |
The name of the configMap |
false |
benchmark.spec.infrastructure.resources[index].fileSystem
The fileSystem resourceSet loads the Kubernetes manifests from the filesystem.
Name | Type | Description | Required |
---|---|---|---|
files | []string |
(Optional) Specifies which files from the configMap should be loaded. If this field is not set, all files are loaded. |
false |
path | string |
The path to the folder which contains the Kubernetes manifests files. |
false |
benchmark.spec.kafkaConfig
Contains the Kafka configuration.
Name | Type | Description | Required |
---|---|---|---|
bootstrapServer | string |
The bootstrap servers connection string. |
true |
topics | []object |
List of topics to be created for each experiment. Alternative theodolite offers the possibility to remove certain topics after each experiment. |
true |
benchmark.spec.kafkaConfig.topics[index]
Name | Type | Description | Required |
---|---|---|---|
name | string |
The name of the topic. Default: |
true |
numPartitions | integer |
The number of partitions of the topic. Default: 0 |
false |
removeOnly | boolean |
Determines if this topic should only be deleted after each experiment. For removeOnly topics the name can be a RegEx describing the topic. Default: false |
false |
replicationFactor | integer |
The replication factor of the topic. Default: 0 |
false |
benchmark.status
Name | Type | Description | Required |
---|---|---|---|
resourceSetsState | string |
The status of a Benchmark indicates whether all resources are available to start the benchmark or not. |
false |
execution
Name | Type | Description | Required |
---|---|---|---|
apiVersion | string | theodolite.rocks/v1beta1 | true |
kind | string | execution | true |
metadata | object | Refer to the Kubernetes API documentation for the fields of the `metadata` field. | true |
spec | object |
|
true |
status | object |
|
false |
execution.spec
Name | Type | Description | Required |
---|---|---|---|
benchmark | string |
The name of the benchmark this execution is referring to. |
true |
execution | object |
Defines the overall parameter for the execution. |
true |
load | object |
Specifies the load values that are benchmarked. |
true |
resources | object |
Specifies the scaling resource that is benchmarked. |
true |
configOverrides | []object |
List of patchers that are used to override existing configurations. Default: [] |
false |
name | string |
This field exists only for technical reasons and should not be set by the user. The value of the field will be overwritten. Default: |
false |
slos | []object |
List of SLOs with their properties, which differ from the benchmark definition. |
false |
execution.spec.execution
Defines the overall parameter for the execution.
Name | Type | Description | Required |
---|---|---|---|
duration | integer |
Defines the duration of each experiment in seconds. |
true |
repetitions | integer |
Number of repititions for each experiment. |
true |
strategy | object |
Defines the used strategy for the execution, either 'LinearSearch', 'BinarySearch' or 'InitialGuessSearch'. |
true |
loadGenerationDelay | integer |
Seconds to wait between the start of the SUT and the load generator. |
false |
metric | string |
|
false |
execution.spec.execution.strategy
Defines the used strategy for the execution, either ‘LinearSearch’, ‘BinarySearch’ or ‘InitialGuessSearch’.
Name | Type | Description | Required |
---|---|---|---|
name | string |
|
true |
guessStrategy | string |
|
false |
restrictions | []string |
List of restriction strategies used to delimit the search space. |
false |
searchStrategy | string |
|
false |
execution.spec.load
Specifies the load values that are benchmarked.
Name | Type | Description | Required |
---|---|---|---|
loadType | string |
The type of the load. It must match one of the load types specified in the referenced benchmark. |
true |
loadValues | []integer |
List of load values for the specified load type. |
true |
execution.spec.resources
Specifies the scaling resource that is benchmarked.
Name | Type | Description | Required |
---|---|---|---|
resourceType | string |
The type of the resource. It must match one of the resource types specified in the referenced benchmark. |
true |
resourceValues | []integer |
List of resource values for the specified resource type. |
true |
execution.spec.configOverrides[index]
Name | Type | Description | Required |
---|---|---|---|
patcher | object |
Patcher used to patch a resource |
false |
value | string |
|
false |
execution.spec.configOverrides[index].patcher
Patcher used to patch a resource
Name | Type | Description | Required |
---|---|---|---|
resource | string |
Specifies the Kubernetes resource to be patched. Default: |
true |
type | string |
Type of the Patcher. Default: |
true |
properties | map[string]string |
(Optional) Patcher specific additional arguments. Default: map[] |
false |
execution.spec.slos[index]
Name | Type | Description | Required |
---|---|---|---|
name | string |
The name of the SLO. It must match a SLO specified in the Benchmark. |
true |
properties | map[string]string |
(Optional) SLO specific additional arguments. Default: map[] |
true |
execution.status
Name | Type | Description | Required |
---|---|---|---|
completionTime | string |
Time when this execution was stopped Format: date-time |
false |
executionDuration | string |
Duration of the execution |
false |
executionState | string |
|
false |
startTime | string |
Time this execution started Format: date-time |
false |