Skip to content
Snippets Groups Projects

API Reference

Packages:

theodolite.com/v1

Resource Types:

benchmark

:leftwards_arrow_with_hook: Parent

Name Type Description Required
apiVersion string theodolite.com/v1 true
kind string benchmark true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object
true

benchmark.spec

:leftwards_arrow_with_hook: Parent

Name Type Description Required
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.
false
appResourceSets []object
true
kafkaConfig object Contains the Kafka configuration.
true
loadGenResourceSets []object
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

benchmark.spec.appResourceSets[index]

:leftwards_arrow_with_hook: Parent

Name Type Description Required
configMap object
false
fileSystem object
false

benchmark.spec.appResourceSets[index].configMap

:leftwards_arrow_with_hook: Parent

Name Type Description Required
files []string
false
name string
false

benchmark.spec.appResourceSets[index].fileSystem

:leftwards_arrow_with_hook: Parent

Name Type Description Required
files []string
false
path string
false

benchmark.spec.kafkaConfig

:leftwards_arrow_with_hook: Parent

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]

:leftwards_arrow_with_hook: Parent

Name Type Description Required
numPartitions integer The number of partitions of the topic.

Default: 0
false
removeOnly boolean Determines if this topic should only be deleted after each experiement. 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
name string The name of the topic.

Default:
true

benchmark.spec.loadGenResourceSets[index]

:leftwards_arrow_with_hook: Parent

Name Type Description Required
configMap object
false
fileSystem object
false

benchmark.spec.loadGenResourceSets[index].configMap

:leftwards_arrow_with_hook: Parent

Name Type Description Required
files []string
false
name string
false

benchmark.spec.loadGenResourceSets[index].fileSystem

:leftwards_arrow_with_hook: Parent

Name Type Description Required
files []string
false
path string
false

benchmark.spec.loadTypes[index]

:leftwards_arrow_with_hook: Parent

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]

:leftwards_arrow_with_hook: Parent

Name Type Description Required
properties map[string]string (Optional) Patcher specific additional arguments.

Default: map[]
false
resource string Specifies the Kubernetes resource to be patched.

Default:
true
type string Type of the Patcher.

Default:
true

benchmark.spec.resourceTypes[index]

:leftwards_arrow_with_hook: Parent

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]

:leftwards_arrow_with_hook: Parent

Name Type Description Required
properties map[string]string (Optional) Patcher specific additional arguments.

Default: map[]
false
resource string Specifies the Kubernetes resource to be patched.

Default:
true
type string Type of the patcher.

Default:
true

execution

:leftwards_arrow_with_hook: Parent

Name Type Description Required
apiVersion string theodolite.com/v1 true
kind string execution true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
status object
false
spec object
true

execution.status

:leftwards_arrow_with_hook: Parent

Name Type Description Required
executionDuration string Duration of the execution in seconds
false
executionState string
false

execution.spec

:leftwards_arrow_with_hook: Parent

Name Type Description Required
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
benchmark string The name of the benchmark this execution is referring to.
true
configOverrides []object List of patchers that are used to override existing configurations.
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
slos []object List of resource values for the specified resource type.
true

execution.spec.configOverrides[index]

:leftwards_arrow_with_hook: Parent

Name Type Description Required
patcher object Patcher used to patch a resource
false
value string
false

execution.spec.configOverrides[index].patcher

:leftwards_arrow_with_hook: Parent

Patcher used to patch a resource

Name Type Description Required
properties map[string]string (Optional) Patcher specific additional arguments.

Default: map[]
false
resource string Specifies the Kubernetes resource to be patched.

Default:
true
type string Type of the Patcher.

Default:
true

execution.spec.execution

:leftwards_arrow_with_hook: Parent

Defines the overall parameter for the execution.

Name Type Description Required
loadGenerationDelay integer Seconds to wait between the start of the SUT and the load generator.
false
duration integer Defines the duration of each experiment in seconds.
true
repetitions integer Numper of repititions for each experiments.
true
restrictions []string List of restriction strategys used to delimit the search space.
true
strategy string Defines the used strategy for the execution, either 'LinearSearch' or 'BinarySearch'
true

execution.spec.load

:leftwards_arrow_with_hook: Parent

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

:leftwards_arrow_with_hook: Parent

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
true

execution.spec.slos[index]

:leftwards_arrow_with_hook: Parent

Name Type Description Required
properties map[string]string (Optional) SLO specific additional arguments.

Default: map[]
false
offset integer Hours by which the start and end timestamp will be shifted (for different timezones).
true
prometheusUrl string Connection string for Promehteus.
true
sloType string The type of the SLO. It must match 'lag trend'.
true