Experiment v1beta2
Table of Contents
- Constraint
- Experiment
- ExperimentCondition
- ExperimentList
- ExperimentSpec
- ExperimentStatus
- Metric
- NamespaceTemplateSpec
- Optimization
- OrderConstraint
- Parameter
- PatchReadinessGate
- PatchTemplate
- ResourceTarget
- SumConstraint
- SumConstraintParameter
- TrialTemplateSpec
Constraint
Constraint represents a constraint to the domain of the parameters
Field | Description | Scheme | Required |
---|---|---|---|
name |
The optional name of the constraint | string | false |
order |
The ordering constraint to impose | *OrderConstraint | false |
sum |
The sum constraint to impose | *SumConstraint | false |
Experiment
Experiment is the Schema for the experiments API
Field | Description | Scheme | Required |
---|---|---|---|
metadata |
Standard object metadata | ObjectMeta | false |
spec |
Specification of the desired behavior for an experiment | ExperimentSpec | false |
status |
Current status of an experiment | ExperimentStatus | false |
ExperimentCondition
ExperimentCondition represents an observed condition of an experiment
Field | Description | Scheme | Required |
---|---|---|---|
type |
The condition type | ExperimentConditionType | true |
status |
The status of the condition, one of “True”, “False”, or “Unknown” | corev1.ConditionStatus | true |
lastProbeTime |
The last known time the condition was checked | metav1.Time | true |
lastTransitionTime |
The time at which the condition last changed status | metav1.Time | true |
reason |
A reason code describing the why the condition occurred | string | false |
message |
A human-readable message describing the transition | string | false |
ExperimentList
ExperimentList contains a list of Experiment
Field | Description | Scheme | Required |
---|---|---|---|
metadata |
Standard list metadata | ListMeta | false |
items |
The list of experiments | []Experiment | true |
ExperimentSpec
ExperimentSpec defines the desired state of Experiment
Field | Description | Scheme | Required |
---|---|---|---|
replicas |
Replicas is the number of trials to execute concurrently; defaults to 1 | *int32 | false |
optimization |
Optimization defines additional configuration for the optimization | []Optimization | false |
parameters |
Parameters defines the search space for the experiment | []Parameter | true |
constraints |
Constraints defines restrictions on the parameter domain for the experiment | []Constraint | false |
metrics |
Metrics defines the outcomes for the experiment | []Metric | true |
patches |
Patches is a sequence of templates written against the experiment parameters that will be used to put the cluster into the desired state | []PatchTemplate | false |
namespaceSelector |
NamespaceSelector is used to locate existing namespaces for trials | *LabelSelector | false |
namespaceTemplate |
NamespaceTemplate can be specified to create new namespaces for trials. If specified created namespaces must be matched by the namespace selector | *NamespaceTemplateSpec | false |
selector |
Selector locates trial resources that are part of this experiment | *LabelSelector | false |
trialTemplate |
TrialTemplate for creating a new trial. The resulting trial must be matched by Selector. The template can provide an initial namespace, however other namespaces (matched by NamespaceSelector) will be used if the effective replica count is more than 1 | TrialTemplateSpec | false |
ExperimentStatus
ExperimentStatus defines the observed state of Experiment
Field | Description | Scheme | Required |
---|---|---|---|
phase |
Phase is a brief human-readable description of the experiment status | string | true |
activeTrials |
ActiveTrials is the observed number of running trials | int32 | true |
conditions |
Conditions is the current state of the experiment | []ExperimentCondition | false |
Metric
Metric represents an observable outcome from a trial run
Field | Description | Scheme | Required |
---|---|---|---|
name |
The name of the metric | string | true |
minimize |
Indicator that the goal of the experiment is to minimize the value of this metric | bool | false |
min |
The inclusive minimum allowed value for the metric | *resource.Quantity | false |
max |
The inclusive maximum allowed value for the metric | *resource.Quantity | false |
optimize |
Indicator that this metric should be optimized (default: true) | *bool | false |
type |
The metric collection type, one of: kubernetes|prometheus|datadog|jsonpath, default: kubernetes | MetricType | false |
query |
Collection type specific query, e.g. Go template for “kubernetes”, PromQL for “prometheus” or a JSON pointer expression (with curly braces) for “jsonpath” | string | true |
errorQuery |
Collection type specific query for the error associated with collected metric value | string | false |
url |
URL to use when querying remote metric sources | string | false |
target |
Target reference of the Kubernetes object to query for metric information | *ResourceTarget | false |
NamespaceTemplateSpec
NamespaceTemplateSpec is used as a template for creating new namespaces
Field | Description | Scheme | Required |
---|---|---|---|
metadata |
Standard object metadata | ObjectMeta | false |
spec |
Specification of the namespace | corev1.NamespaceSpec | false |
Optimization
Optimization is a configuration setting for the optimizer
Field | Description | Scheme | Required |
---|---|---|---|
name |
Name is the name of the optimization configuration to set | string | true |
value |
Value is string representation of the optimization configuration | string | true |
OrderConstraint
OrderConstraint defines a constraint between the ordering of two parameters in the experiment
Field | Description | Scheme | Required |
---|---|---|---|
lowerParameter |
LowerParameter is the name of the parameter that must be the smaller of two parameters | string | true |
upperParameter |
UpperParameter is the name of the parameter that must be the larger of two parameters | string | true |
Parameter
Parameter represents the domain of a single component of the experiment search space
Field | Description | Scheme | Required |
---|---|---|---|
name |
The name of the parameter | string | true |
baseline |
The baseline value for this parameter | *intstr.IntOrString | false |
min |
The inclusive minimum value of the parameter | int32 | false |
max |
The inclusive maximum value of the parameter | int32 | false |
values |
The discrete allowed values of the parameter | []string | false |
PatchReadinessGate
PatchReadinessGate contains a reference to a condition
Field | Description | Scheme | Required |
---|---|---|---|
conditionType |
ConditionType refers to a condition in the patched target’s condition list | string | true |
PatchTemplate
PatchTemplate defines a target resource and a patch template to apply
Field | Description | Scheme | Required |
---|---|---|---|
type |
The patch type, one of: strategic|merge|json, default: strategic | PatchType | false |
targetRef |
Direct reference to the object the patch should be applied to | *ObjectReference | false |
patch |
A Go Template that evaluates to valid patch | string | true |
readinessGates |
ReadinessGates will be evaluated for patch target readiness. A patch target is ready if all conditions specified in the readiness gates have a status equal to “True”. If no readiness gates are specified, some target types may have default gates assigned to them. Some condition checks may result in errors, e.g. a condition type of “Ready” is not allowed for a ConfigMap. Condition types starting with “stormforge.io/” may not appear in the patched target’s condition list but are still evaluated against the resource’s state. | []PatchReadinessGate | false |
ResourceTarget
ResourceTarget contains enough information to reference either a single target resource by name or a group of target resources by label.
Field | Description | Scheme | Required |
---|---|---|---|
apiVersion |
API version of the referent | string | false |
kind |
Kind of the referent | string | false |
namespace |
Namespace of the referent | string | false |
name |
Name of the referent, if blank then the selector is used to match a list of resources | string | false |
SumConstraint
SumConstraint defines a constraint between the sum of a collection of parameters
Field | Description | Scheme | Required |
---|---|---|---|
bound |
Bound for the sum of the listed parameters | resource.Quantity | true |
isUpperBound |
IsUpperBound determines if the bound values is an upper or lower bound on the sum | bool | false |
parameters |
Parameters that should be summed | []SumConstraintParameter | true |
SumConstraintParameter
SumConstraintParameter is a weighted parameter specification in a sum constraint
Field | Description | Scheme | Required |
---|---|---|---|
name |
Name of the parameter | string | true |
weight |
Weight of the parameter | resource.Quantity | true |
TrialTemplateSpec
TrialTemplateSpec is used as a template for creating new trials
Field | Description | Scheme | Required |
---|---|---|---|
metadata |
Standard object metadata | ObjectMeta | false |
spec |
Specification of the desired behavior for the trial | TrialSpec | false |