Trial v1beta2
Table of Contents
- Assignment
- ConfigMapHelmValuesFromSource
- HelmValue
- HelmValueSource
- HelmValuesFromSource
- ParameterSelector
- PatchOperation
- ReadinessCheck
- SetupTask
- Trial
- TrialCondition
- TrialList
- TrialReadinessGate
- TrialSpec
- TrialStatus
- Value
Assignment
Assignment represents an individual name/value pair. Assignment names must correspond to parameter names on the associated experiment.
Field | Description | Scheme | Required |
---|---|---|---|
name |
Name of the parameter being assigned | string | true |
value |
Value of the assignment | intstr.IntOrString | true |
ConfigMapHelmValuesFromSource
ConfigMapHelmValuesFromSource is a reference to a ConfigMap that contains “*values.yaml” keys
Field | Description | Scheme | Required |
---|---|---|---|
N/A |
HelmValue
HelmValue represents a value in a Helm template
Field | Description | Scheme | Required |
---|---|---|---|
name |
The name of Helm value as passed to one of the set options | string | true |
forceString |
Force the value to be treated as a string | bool | false |
value |
Set a Helm value using the evaluated template. Templates are evaluated using the same rules as patches | intstr.IntOrString | false |
valueFrom |
Source for a Helm value | *HelmValueSource | false |
HelmValueSource
HelmValueSource represents a source for a Helm value
Field | Description | Scheme | Required |
---|---|---|---|
parameterRef |
Selects a trial parameter assignment as a Helm value | *ParameterSelector | false |
HelmValuesFromSource
HelmValuesFromSource represents a source of a values mapping
Field | Description | Scheme | Required |
---|---|---|---|
configMap |
The ConfigMap to select from. The ConfigMap MUST contain a values.yaml key. |
*ConfigMapHelmValuesFromSource | false |
ParameterSelector
ParameterSelector selects a trial parameter assignment. Note that parameters values are used as is (i.e. in numeric form), for more control over the formatting of a parameter assignment use the template option on HelmValue.
Field | Description | Scheme | Required |
---|---|---|---|
name |
The name of the trial parameter to use | string | true |
PatchOperation
PatchOperation represents a patch used to prepare the cluster for a trial run, includes the evaluated parameter assignments as necessary
Field | Description | Scheme | Required |
---|---|---|---|
targetRef |
The reference to the object that the patched should be applied to | ObjectReference | true |
patchType |
The patch content type, must be a type supported by the Kubernetes API server | types.PatchType | true |
data |
The raw data representing the patch to be applied | []byte | true |
attemptsRemaining |
The number of remaining attempts to apply the patch, will be automatically set to zero if the patch is successfully applied | int | false |
ReadinessCheck
ReadinessCheck represents a check to determine when the patched application is “ready” and it is safe to start the trial run job
Field | Description | Scheme | Required |
---|---|---|---|
targetRef |
TargetRef is the reference to the object to test the readiness of | ObjectReference | true |
selector |
Selector may be used to trigger a search for multiple related objects to search; this may have RBAC implications, in particular “list” permissions are required | *LabelSelector | false |
conditionTypes |
ConditionTypes are the status conditions that must be “True”; in addition to conditions that appear in the status of the target object, additional special conditions starting with “stormforge.io/” can be tested | []string | false |
initialDelaySeconds |
InitialDelaySeconds is the approximate number of seconds after all the patches have been applied to start evaluating this check | int32 | false |
periodSeconds |
PeriodSeconds is the approximate amount of time in between evaluation attempts of this check | int32 | false |
attemptsRemaining |
AttemptsRemaining is the number of failed attempts to allow before marking the entire trial as failed, will be automatically set to 0 if the check has been successfully evaluated | int32 | false |
lastCheckTime |
LastCheckTime is the timestamp of the last evaluation attempt | *metav1.Time | false |
SetupTask
SetupTask represents the configuration necessary to apply application state to the cluster prior to each trial run and remove that state after the run concludes
Field | Description | Scheme | Required |
---|---|---|---|
name |
The required name that uniquely identifies the setup task | string | true |
image |
Image used for performing setup tasks, required unless helmChart is set | string | false |
command |
Override the default command for the container | []string | false |
args |
Override the default args for the container | []string | false |
skipCreate |
Flag to indicate the creation part of the task can be skipped | bool | false |
skipDelete |
Flag to indicate the deletion part of the task can be skipped | bool | false |
volumeMounts |
Volume mounts for the setup task | []VolumeMount | false |
env |
Environment variables to expose to the container | []corev1.EnvVar | false |
labels |
Labels to associate with the setup task | map[string]string | false |
helmChart |
The Helm chart reference to release as part of this task | string | false |
helmChartVersion |
The Helm chart version, empty means use the latest | string | false |
helmValues |
The Helm values to set, ignored unless helmChart is also set | []HelmValue | false |
helmValuesFrom |
The Helm values, ignored unless helmChart is also set | []HelmValuesFromSource | false |
helmRepository |
The Helm repository to fetch the chart from | string | false |
Trial
Trial is the Schema for the trials API
Field | Description | Scheme | Required |
---|---|---|---|
metadata |
Standard object metadata | ObjectMeta | false |
spec |
Specification of the desired behavior for a trial | TrialSpec | false |
status |
Current status of a trial | TrialStatus | false |
TrialCondition
TrialCondition represents an observed condition of a trial
Field | Description | Scheme | Required |
---|---|---|---|
type |
The condition type, e.g. “stormforge.io/trial-complete” | TrialConditionType | 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 |
TrialList
TrialList contains a list of Trial
Field | Description | Scheme | Required |
---|---|---|---|
metadata |
Standard list metadata | ListMeta | false |
items |
The list of trials | []Trial | true |
TrialReadinessGate
TrialReadinessGate represents a readiness check on one or more objects that must pass after patches have been applied but before the trial run job can start
Field | Description | Scheme | Required |
---|---|---|---|
kind |
Kind of the readiness target | string | false |
name |
Name of the readiness target, mutually exclusive with “Selector” | string | false |
apiVersion |
APIVersion of the readiness target | string | false |
selector |
Selector matches the resources whose condition must be checked, mutually exclusive with “Name” | *LabelSelector | false |
conditionTypes |
ConditionTypes are the status conditions that must be “True” | []string | false |
initialDelaySeconds |
InitialDelaySeconds is the approximate number of seconds after all of the patches have been applied to start evaluating this check | int32 | false |
periodSeconds |
PeriodSeconds is the approximate amount of time in between evaluation attempts of this check; defaults to 10 seconds, minimum value is 1 second | int32 | false |
failureThreshold |
FailureThreshold is number of times that any of the specified ready conditions may be “False”; defaults to 3, minimum value is 1 | int32 | false |
TrialSpec
TrialSpec defines the desired state of Trial
Field | Description | Scheme | Required |
---|---|---|---|
experimentRef |
ExperimentRef is the reference to the experiment that contains the definitions to use for this trial, defaults to an experiment in the same namespace with the same name | *ObjectReference | false |
assignments |
Assignments are used to patch the cluster state prior to the trial run | []Assignment | false |
selector |
Selector matches the job representing the trial run | *LabelSelector | false |
initialDelaySeconds |
InitialDelaySeconds is number of seconds to wait after a trial becomes ready before starting the trial run job | int32 | false |
startTimeOffset |
The offset used to adjust the start time to account for spin up of the trial run | *metav1.Duration | false |
setupTasks |
Setup tasks that must run before the trial starts (and possibly after it ends) | []SetupTask | false |
setupVolumes |
Volumes to make available to setup tasks, typically ConfigMap backed volumes | []Volume | false |
setupServiceAccountName |
Service account name for running setup tasks, needs enough permissions to add and remove software | string | false |
setupDefaultClusterRole |
Cluster role name to be assigned to the setup service account when creating namespaces | string | false |
setupDefaultRules |
Policy rules to be assigned to the setup service account when creating namespaces | []rbacv1.PolicyRule | false |
approximateRuntime |
The approximate amount of time the trial run should execute (not inclusive of the start time offset) | *metav1.Duration | false |
readinessGates |
The readiness gates to check before running the trial job | []TrialReadinessGate | false |
jobTemplate |
JobTemplate is the job template used to create trial run jobs | *JobTemplateSpec | false |
ttlSecondsAfterFinished |
The minimum number of seconds before an attempt should be made to clean up the trial, if unset or negative no attempt is made to clean up the trial | *int32 | false |
ttlSecondsAfterFailure |
The minimum number of seconds before an attempt should be made to clean up a failed trial, defaults to TTLSecondsAfterFinished | *int32 | false |
values |
Values are the collected metrics at the end of the trial run | []Value | false |
TrialStatus
TrialStatus defines the observed state of Trial
Field | Description | Scheme | Required |
---|---|---|---|
phase |
Phase is a brief human-readable description of the trial status | string | true |
assignments |
Assignments is a string representation of the trial assignments for reporting purposes | string | true |
values |
Values is a string representation of the trial values for reporting purposes | string | true |
startTime |
StartTime is the effective (possibly adjusted) time the trial run job started | *metav1.Time | false |
completionTime |
CompletionTime is the effective (possibly adjusted) time the trial run job completed | *metav1.Time | false |
conditions |
Conditions is the current state of the trial | []TrialCondition | false |
patchOperations |
PatchOperations are the patches from the experiment evaluated in the context of this trial | []PatchOperation | false |
readinessChecks |
ReadinessChecks are the all the objects whose conditions need to be inspected for this trial | []ReadinessCheck | false |
Value
Value represents an observed metric value after a trial run has completed successfully. Value names must correspond to metric names on the associated experiment.
Field | Description | Scheme | Required |
---|---|---|---|
name |
The metric name the value corresponds to | string | true |
value |
The observed float64 value, formatted as a string | string | true |
error |
The observed float64 error (standard deviation), formatted as a string | string | false |
attemptsRemaining |
The number of remaining attempts to observe the value; is automatically set to 0 if the metric is successfully collected | int | false |