application/apps/v1alpha1

Table of Contents

Application

Application represents a description of an application to run experiments on.

Field Description Scheme Required
metadata ObjectMeta false
resources Resources are references to application resources to consider in the generation of the experiment. These strings are the same format as used by Kustomize. []string false
parameters Parameters specifies additional details about the experiment parameters. *Parameters false
ingress Ingress specifies how to find the entry point to the application. *Ingress false
scenarios The list of scenarios to optimize the application for. []Scenario false
objectives The list of objectives to optimizat the application for. []Objective false
stormForger StormForger allows you to configure StormForger to apply load on your application. *StormForger false

Back to TOC

ContainerResources

ContainerResources specifies which resources in the application should have their container resources (CPU and memory) optimized.

Field Description Scheme Required
labelSelector Label selector of Kubernetes objects to consider when generating container resources patches. string false

Back to TOC

Ingress

Ingress describes the point of ingress to the application.

Field Description Scheme Required
url The URL used to access the application from outside the cluster. string false

Back to TOC

LatencyObjective

LatencyObject is used to optimize the responsiveness of an application in a specific scenario.

Field Description Scheme Required
LatencyType The latency to optimize. Can be one of the following values: minimum (or min), maximum (or max), mean (or average, avg), percentile_50 (or p50, median, med), percentile_95 (or p95), percentile_99 (or p99). LatencyType false

Back to TOC

LocustScenario

LocustScenario is used to generate load using Locust.

Field Description Scheme Required
locustfile Path to a Python module file to import. string false
users Number of concurrent Locust users. *int false
spawnRate The rate per second in which users are spawned. *int false
runTime Stop after the specified amount of time. *time.Duration false

Back to TOC

Objective

Objective describes the goal of the optimization in terms of specific metrics. Note that only one objective configuration can be specified at a time.

Field Description Scheme Required
name The name of the objective. If no objective specific configuration is supplied, the name is used to derive a configuration. For example, any valid latency (prefixed or suffixed with “latency”) will configure a default latency objective. string true
max The upper bound for the objective. *resource.Quantity false
min The lower bound for the objective. *resource.Quantity false
optimize Flag indicating that this objective should optimized instead of monitored (default: true). *bool false
requests Requests is used to optimize the resources consumed by an application. *RequestsObjective false
latency Latency is used to optimize the responsiveness of an application. *LatencyObjective false

Back to TOC

Parameters

Parameters describes the strategy for tuning the application.

Field Description Scheme Required
containerResources Information related to the discovery of container resources parameters like CPU and memory. *ContainerResources false
replicas Information related to the discovery of replica parameters. *Replicas false

Back to TOC

Replicas

Replicas specifies which resources in the application should have their replica count optimized.

Field Description Scheme Required
labelSelector Label selector of Kubernetes objects to consider when generating replica patches. string false

Back to TOC

RequestsObjective

RequestsObjective is used to optimize the resource requests of an application in a specific scenario.

Field Description Scheme Required
metricSelector Labels of the pods which should be considered when collecting cost information. string false
weights Weights are used to determine which container resources should be optimized. corev1.ResourceList false

Back to TOC

Scenario

Scenario describes a specific pattern of load to optimize the application for.

Field Description Scheme Required
name The name of scenario. string true
stormforger StormForger configuration for the scenario. *StormForgerScenario false
locust Locust configuration for the scenario. *LocustScenario false

Back to TOC

StormForger

StormForger describes global configuration related to StormForger.

Field Description Scheme Required
org The name of the StormForger organization. string false
accessToken Configuration for the StormForger service account. *StormForgerAccessToken false

Back to TOC

StormForgerAccessToken

StormForgerAccessToken is used to configure a service account access token for the StormForger API.

Field Description Scheme Required
file The path to the file that contains the service account access token. string false
literal A literal token value, this should only be used for testing as it is not secure. string false
secretKeyRef Reference to an existing secret key that contains the access token. *corev1.SecretKeySelector false

Back to TOC

StormForgerScenario

StormForgerScenario is used to generate load using StormForger.

Field Description Scheme Required
testCase The test case can be used to specify an existing test case in the StormForger API or it can be used to override the generated test case name when specified in conjunction with the local test case file. The organization is optional if it is configured globally. string false
testCaseFile Path to a local test case file used to define a new test case in the StormForger API. string false

Back to TOC