Documentation ¶
Index ¶
- Constants
- func ApplyCondition(status *optimizev1beta2.ExperimentStatus, ...)
- func FailExperiment(exp *optimizev1beta2.Experiment, reason string, err error) bool
- func IsFinished(exp *optimizev1beta2.Experiment) bool
- func NextTrialNamespace(ctx context.Context, c client.Client, exp *optimizev1beta2.Experiment, ...) (string, error)
- func PopulateTrialFromTemplate(exp *optimizev1beta2.Experiment, t *optimizev1beta2.Trial)
- func StopExperiment(exp *optimizev1beta2.Experiment, err error) bool
- func UpdateStatus(exp *optimizev1beta2.Experiment, trialList *optimizev1beta2.TrialList) bool
- func Walk(ctx context.Context, v Visitor, obj interface{})
- func WalkPath(ctx context.Context) []string
- type Generator
- type MetadataAnnotations
- type MetadataLabels
- type Visitor
Constants ¶
const ( // PhaseCreated indicates that the experiment has been created on the remote server but is not receiving trials PhaseCreated string = "Created" // PhasePaused indicates that the experiment has been paused, i.e. the desired replica count is zero PhasePaused = "Paused" // PhaseEmpty indicates there is no record of trials being run in the cluster PhaseEmpty = "Never run" // TODO This is misleading, it could be that we already deleted the trials that ran // PhaseIdle indicates that the experiment is waiting for trials to be manually created PhaseIdle = "Idle" // PhaseRunning indicates that there are actively running trials for the experiment PhaseRunning = "Running" // PhaseCompleted indicates that the experiment has exhausted it's trial budget and is no longer expecting new trials PhaseCompleted = "Completed" // PhaseFailed indicates that the experiment has failed PhaseFailed = "Failed" // PhaseDeleted indicates that the experiment has been deleted and is waiting for trials to be cleaned up PhaseDeleted = "Deleted" )
TODO Make the constant names better reflect the code, not the text
const (
// HasTrialFinalizer is a finalizer that indicates an experiment has at least one trial
HasTrialFinalizer = "hasTrialFinalizer.stormforge.io"
)
Variables ¶
This section is empty.
Functions ¶
func ApplyCondition ¶
func ApplyCondition(status *optimizev1beta2.ExperimentStatus, conditionType optimizev1beta2.ExperimentConditionType, conditionStatus corev1.ConditionStatus, reason, message string, time *metav1.Time)
func FailExperiment ¶
func FailExperiment(exp *optimizev1beta2.Experiment, reason string, err error) bool
FailExperiment records a recognized error as an experiment failure.
func IsFinished ¶
func IsFinished(exp *optimizev1beta2.Experiment) bool
func NextTrialNamespace ¶
func NextTrialNamespace(ctx context.Context, c client.Client, exp *optimizev1beta2.Experiment, trialList *optimizev1beta2.TrialList) (string, error)
NextTrialNamespace searches for or creates a new namespace to run a new trial in, returning an empty string if no such namespace can be found
func PopulateTrialFromTemplate ¶
func PopulateTrialFromTemplate(exp *optimizev1beta2.Experiment, t *optimizev1beta2.Trial)
PopulateTrialFromTemplate creates a new trial for an experiment
func StopExperiment ¶
func StopExperiment(exp *optimizev1beta2.Experiment, err error) bool
StopExperiment updates the experiment in the event that it should be paused or halted.
func UpdateStatus ¶
func UpdateStatus(exp *optimizev1beta2.Experiment, trialList *optimizev1beta2.TrialList) bool
UpdateStatus will ensure the experiment's status matches what is in the supplied trial list; returns true only if changes were necessary
Types ¶
type Generator ¶
type Generator struct { // The definition of the application to generate an experiment for. Application optimizeappsv1alpha1.Application // The name of the experiment to generate. ExperimentName string // The name of the scenario to generate an experiment for. Required if there are more then one scenario. Scenario string // The name of the objective to generate an experiment for. Required if there are more then one set of objectives. Objective string // IncludeApplicationResources is a flag indicating that the application resources should be included in the output. IncludeApplicationResources bool // Configure the filter options. scan.FilterOptions }
Generator is used to create an experiment definition.
type MetadataAnnotations ¶ added in v2.0.1
MetadataAnnotations is a marker type to identify the `ObjectMeta.Annotations` map.
type MetadataLabels ¶ added in v2.0.1
MetadataLabels is a marker type to identify the `ObjectMeta.Labels` map.
type Visitor ¶
type Visitor interface { // Visit an experiment section. The supplied object will be a slice or a pointer // to a type on the experiment. The return value is used to halt traversal. Visit(ctx context.Context, obj interface{}) Visitor }
Visitor is used to inspect individual sections of an experiment.