v1alpha1

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2019 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the redsky v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/redskyops/k8s-experiment/pkg/apis/redsky +k8s:defaulter-gen=TypeMeta +groupName=redsky.carbonrelay.com

Copyright 2019 GramLabs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 GramLabs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package v1alpha1 contains API Schema definitions for the redsky v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/redskyops/k8s-experiment/pkg/apis/redsky +k8s:defaulter-gen=TypeMeta +groupName=redsky.carbonrelay.com

Copyright 2019 GramLabs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 GramLabs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// Local metrics are Go Templates evaluated against the trial itself. No external service is consulted, primarily
	// useful for extracting start and completion times.
	MetricLocal MetricType = "local"
	// Prometheus metrics issue PromQL queries to a matched service. Queries MUST evaluate to a scalar value.
	MetricPrometheus = "prometheus"
	// JSON path metrics fetch a JSON resource from the matched service. Queries are JSON path expression evaluated against the resource.
	MetricJSONPath = "jsonpath"
)

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "redsky.carbonrelay.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme is required by pkg/client/...
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type Assignment

type Assignment struct {
	Name  string `json:"name"`
	Value int64  `json:"value"`
}

Assignment represents an individual name/value pair. Assignment names must correspond to parameter names on the associated experiment.

func (*Assignment) DeepCopy

func (in *Assignment) DeepCopy() *Assignment

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Assignment.

func (*Assignment) DeepCopyInto

func (in *Assignment) DeepCopyInto(out *Assignment)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConfigMapHelmValuesFromSource

type ConfigMapHelmValuesFromSource struct {
	corev1.LocalObjectReference `json:",inline"`
}

ConfigMapHelmValuesFromSource is a reference to a ConfigMap that contains "*values.yaml" keys TODO How do document the side effect of things like patches in the ConfigMap also being applied?

func (*ConfigMapHelmValuesFromSource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapHelmValuesFromSource.

func (*ConfigMapHelmValuesFromSource) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Experiment

type Experiment struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   ExperimentSpec   `json:"spec,omitempty"`
	Status ExperimentStatus `json:"status,omitempty"`
}

Experiment is the Schema for the experiments API +k8s:openapi-gen=true

func (*Experiment) DeepCopy

func (in *Experiment) DeepCopy() *Experiment

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Experiment.

func (*Experiment) DeepCopyInto

func (in *Experiment) DeepCopyInto(out *Experiment)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Experiment) DeepCopyObject

func (in *Experiment) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Experiment) GetDefaultLabels

func (in *Experiment) GetDefaultLabels() map[string]string

Returns a fall back label for when the user has not specified anything

func (*Experiment) GetReplicas

func (in *Experiment) GetReplicas() int

GetReplicas returns the effective replica (trial) count for the experiment

func (*Experiment) GetSelfReference

func (in *Experiment) GetSelfReference() *corev1.ObjectReference

GetSelfReference returns an object reference to this experiment

func (*Experiment) SetReplicas

func (in *Experiment) SetReplicas(r int)

SetReplicas establishes a new replica (trial) count for the experiment

type ExperimentList

type ExperimentList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Experiment `json:"items"`
}

ExperimentList contains a list of Experiment

func (*ExperimentList) DeepCopy

func (in *ExperimentList) DeepCopy() *ExperimentList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentList.

func (*ExperimentList) DeepCopyInto

func (in *ExperimentList) DeepCopyInto(out *ExperimentList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ExperimentList) DeepCopyObject

func (in *ExperimentList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ExperimentSpec

type ExperimentSpec struct {
	// Replicas is the number of trials to execute concurrently, defaults to 1
	Replicas *int32 `json:"replicas,omitempty"`
	// Parallelism is the total number of expected replicas across all clusters, defaults to the replica count
	Parallelism *int32 `json:"parallelism,omitempty"`
	// Parameters defines the search space for the experiment
	Parameters []Parameter `json:"parameters,omitempty"`
	// Metrics defines the outcomes for the experiment
	Metrics []Metric `json:"metrics,omitempty"`
	// Patches is a sequence of templates written against the experiment parameters that will be used to put the
	// cluster into the desired state
	Patches []PatchTemplate `json:"patches,omitempty"`
	// NamespaceSelector is used to determine which namespaces on a cluster can be used to create trials. Only a single
	// trial can be created in each namespace so if there are fewer matching namespaces then replicas, no trials will
	// be created
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
	// Selector locates trial resources that are part of this experiment
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
	// Template 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 then one
	Template TrialTemplateSpec `json:"template"`
}

ExperimentSpec defines the desired state of Experiment

func (*ExperimentSpec) DeepCopy

func (in *ExperimentSpec) DeepCopy() *ExperimentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentSpec.

func (*ExperimentSpec) DeepCopyInto

func (in *ExperimentSpec) DeepCopyInto(out *ExperimentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExperimentStatus

type ExperimentStatus struct {
}

ExperimentStatus defines the observed state of Experiment

func (*ExperimentStatus) DeepCopy

func (in *ExperimentStatus) DeepCopy() *ExperimentStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExperimentStatus.

func (*ExperimentStatus) DeepCopyInto

func (in *ExperimentStatus) DeepCopyInto(out *ExperimentStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HelmValue

type HelmValue struct {
	// The name of Helm value as passed to one of the set options
	Name string `json:"name"`
	// Force the value to be treated as a string
	ForceString bool `json:"forceString,omitempty"`
	// Set a Helm value using the evaluated template. Templates are evaluated using the same rules as patches
	Value intstr.IntOrString `json:"value,omitempty"`
	// Source for a Helm value
	ValueFrom *HelmValueSource `json:"valueFrom,omitempty"`
}

HelmValue represents a value in a Helm template

func (*HelmValue) DeepCopy

func (in *HelmValue) DeepCopy() *HelmValue

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmValue.

func (*HelmValue) DeepCopyInto

func (in *HelmValue) DeepCopyInto(out *HelmValue)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HelmValueSource

type HelmValueSource struct {
	// Selects a trial parameter assignment as a Helm value
	ParameterRef *ParameterSelector `json:"parameterRef,omitempty"`
}

HelmValueSource represents a source for a Helm value

func (*HelmValueSource) DeepCopy

func (in *HelmValueSource) DeepCopy() *HelmValueSource

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmValueSource.

func (*HelmValueSource) DeepCopyInto

func (in *HelmValueSource) DeepCopyInto(out *HelmValueSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HelmValuesFromSource

type HelmValuesFromSource struct {
	ConfigMap *ConfigMapHelmValuesFromSource `json:"configMap"`
}

HelmValueFromSource represents a source of a values mapping

func (*HelmValuesFromSource) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmValuesFromSource.

func (*HelmValuesFromSource) DeepCopyInto

func (in *HelmValuesFromSource) DeepCopyInto(out *HelmValuesFromSource)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Metric

type Metric struct {
	// The name of the metric
	Name string `json:"name"`
	// Indicator that the goal of the experiment is to minimize the value of this metric
	Minimize bool `json:"minimize,omitempty"`

	// The metric collection type, e.g. "prometheus"
	Type MetricType `json:"type,omitempty"`
	// Collection type specific query, e.g. PromQL or a JSON pointer expression
	Query string `json:"query"`

	// Selector matching services to collect this metric from, only the first matched service to provide a value is used
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
	// The port number or name on the matched service to collect the metric value from
	Port intstr.IntOrString `json:"port,omitempty"`
	// URL path component used to collect the metric value from an endpoint (used as a prefix for the Prometheus API)
	Path string `json:"path,omitempty"`
}

Metric represents an observable outcome from a trial run

func (*Metric) DeepCopy

func (in *Metric) DeepCopy() *Metric

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metric.

func (*Metric) DeepCopyInto

func (in *Metric) DeepCopyInto(out *Metric)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricType

type MetricType string

MetricType represents the allowable types of metrics

type Parameter

type Parameter struct {
	// The name of the parameter
	Name string `json:"name"`
	// The inclusive minimum value of the parameter
	Min int64 `json:"min,omitempty"`
	// The inclusive maximum value of the parameter
	Max int64 `json:"max,omitempty"`
}

Parameter represents the domain of a single component of the experiment search space

func (*Parameter) DeepCopy

func (in *Parameter) DeepCopy() *Parameter

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameter.

func (*Parameter) DeepCopyInto

func (in *Parameter) DeepCopyInto(out *Parameter)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ParameterSelector

type ParameterSelector struct {
	// The name of the trial parameter to use
	Name string `json:"name"`
}

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.

func (*ParameterSelector) DeepCopy

func (in *ParameterSelector) DeepCopy() *ParameterSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParameterSelector.

func (*ParameterSelector) DeepCopyInto

func (in *ParameterSelector) DeepCopyInto(out *ParameterSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PatchOperation

type PatchOperation struct {
	// The reference to the object that the patched should be applied to
	TargetRef corev1.ObjectReference `json:"targetRef"`
	// The patch content type, must be a type supported by the Kubernetes API server
	PatchType types.PatchType `json:"patchType"`
	// The raw data representing the patch to be applied
	Data []byte `json:"data"`
	// The number of remaining attempts to apply the patch, will be automatically set
	// to zero if the patch is successfully applied
	AttemptsRemaining int `json:"attemptsRemaining,omitempty"`
	// Wait for the patched object to stabilize
	Wait bool `json:"wait,omitempty"`
}

PatchOperation represents a patch used to prepare the cluster for a trial run, includes the evaluated parameter assignments as necessary

func (*PatchOperation) DeepCopy

func (in *PatchOperation) DeepCopy() *PatchOperation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PatchOperation.

func (*PatchOperation) DeepCopyInto

func (in *PatchOperation) DeepCopyInto(out *PatchOperation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PatchTemplate

type PatchTemplate struct {
	// The patch type, one of: json|merge|strategic, default: strategic
	Type string `json:"type,omitempty"`
	// A Go Template that evaluates to valid patch.
	Patch string `json:"patch"`
	// Direct reference to the object the patch should be applied to. The name can be omitted to match by label selector.
	TargetRef corev1.ObjectReference `json:"targetRef"`
	// A selector matching multiple labeled objects the patch should be applied to.
	// Used only if the target reference name is empty, the target reference API version and kind are used
	// to determine what type of object should be matched.
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
}

PatchTemplate defines a target resource and a patch template to apply

func (*PatchTemplate) DeepCopy

func (in *PatchTemplate) DeepCopy() *PatchTemplate

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PatchTemplate.

func (*PatchTemplate) DeepCopyInto

func (in *PatchTemplate) DeepCopyInto(out *PatchTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SetupTask

type SetupTask struct {
	// The name that uniquely identifies the setup task
	Name string `json:"name"`
	// Override the default image used for performing setup tasks
	Image string `json:"image,omitempty"`
	// Flag to indicate the creation part of the task can be skipped
	SkipCreate bool `json:"skipCreate,omitempty"`
	// Flag to indicate the deletion part of the task can be skipped
	SkipDelete bool `json:"skipDelete,omitempty"`
	// Volume mounts for the setup task
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
	// The Helm chart reference to release as part of this task
	HelmChart string `json:"helmChart,omitempty"`
	// The Helm values to set, ignored unless helmChart is also set
	HelmValues []HelmValue `json:"helmValues,omitempty"`
	// The Helm values, ignored unless helmChart is also set
	HelmValuesFrom []HelmValuesFromSource `json:"helmValuesFrom,omitempty"`
}

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

func (*SetupTask) DeepCopy

func (in *SetupTask) DeepCopy() *SetupTask

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SetupTask.

func (*SetupTask) DeepCopyInto

func (in *SetupTask) DeepCopyInto(out *SetupTask)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Trial

type Trial struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TrialSpec   `json:"spec,omitempty"`
	Status TrialStatus `json:"status,omitempty"`
}

Trial is the Schema for the trials API +k8s:openapi-gen=true +kubebuilder:printcolumn:name="Assignments",type="string",JSONPath=".status.assignments",description="Current assignments" +kubebuilder:printcolumn:name="Values",type="string",JSONPath=".status.values",description="Current values"

func (*Trial) DeepCopy

func (in *Trial) DeepCopy() *Trial

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Trial.

func (*Trial) DeepCopyInto

func (in *Trial) DeepCopyInto(out *Trial)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Trial) DeepCopyObject

func (in *Trial) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Trial) ExperimentNamespacedName

func (in *Trial) ExperimentNamespacedName() types.NamespacedName

ExperimentNamespacedName returns the namespaced name of the experiment for this trial

func (*Trial) GetAssignment

func (in *Trial) GetAssignment(name string) (int64, bool)

Returns an assignment value by name

func (*Trial) GetDefaultLabels

func (in *Trial) GetDefaultLabels() map[string]string

Returns a fall back label for when the user has not specified anything

type TrialCondition

type TrialCondition struct {
	// The condition type, e.g. "Complete"
	Type TrialConditionType `json:"type"`
	// The status of the condition, one of "True", "False", or "Unknown
	Status corev1.ConditionStatus `json:"status"`
	// The last known time the condition was checked
	LastProbeTime metav1.Time `json:"lastProbeTime"`
	// The time at which the condition last changed status
	LastTransitionTime metav1.Time `json:"lastTransitionTime"`
	// A reason code describing the why the condition occurred
	Reason string `json:"reason,omitempty"`
	// A human readable message describing the transition
	Message string `json:"message,omitempty"`
}

TrialCondition represents an observed condition of a trial

func (*TrialCondition) DeepCopy

func (in *TrialCondition) DeepCopy() *TrialCondition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrialCondition.

func (*TrialCondition) DeepCopyInto

func (in *TrialCondition) DeepCopyInto(out *TrialCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TrialConditionType

type TrialConditionType string

TrialConditionType represents the possible observable conditions for a trial

const (
	// Condition that indicates a successful trial run
	TrialComplete TrialConditionType = "Complete"
	// Condition that indicates a failed trial run
	TrialFailed TrialConditionType = "Failed"
	// Condition that indicates all "create" setup tasks have executed successfully
	TrialSetupCreated TrialConditionType = "SetupCreated"
	// Condition that indicates all "delete" setup tasks have executed successfully
	TrialSetupDeleted TrialConditionType = "SetupDeleted"
	// Condition that indicates patches have been applied for a trial
	TrialPatched TrialConditionType = "Patched"
	// Condition that indicates a trail has stabilized after patches
	TrialStable TrialConditionType = "Stable"
	// Condition that indicates a trial has had metrics collected
	TrialObserved TrialConditionType = "Observed"
)

type TrialList

type TrialList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Trial `json:"items"`
}

TrialList contains a list of Trial

func (*TrialList) DeepCopy

func (in *TrialList) DeepCopy() *TrialList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrialList.

func (*TrialList) DeepCopyInto

func (in *TrialList) DeepCopyInto(out *TrialList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TrialList) DeepCopyObject

func (in *TrialList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TrialSpec

type TrialSpec struct {
	// 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
	ExperimentRef *corev1.ObjectReference `json:"experimentRef,omitempty"`
	// TargetNamespace defines the default namespace of the objects to apply patches to, defaults to the namespace of the trial
	TargetNamespace string `json:"targetNamespace,omitempty"`
	// Assignments are used to patch the cluster state prior to the trial run
	Assignments []Assignment `json:"assignments,omitempty"`
	// Selector matches the job representing the trial run
	Selector *metav1.LabelSelector `json:"selector,omitempty"`
	// Template is the job template used to create trial run jobs
	Template *batchv1beta1.JobTemplateSpec `json:"template,omitempty"`
	// The offset used to adjust the start time to account for spin up of the trial run
	StartTimeOffset *metav1.Duration `json:"startTimeOffset,omitempty"`
	// The approximate amount of time the trial run should execute (not inclusive of the start time offset)
	ApproximateRuntime *metav1.Duration `json:"approximateRuntime,omitempty"`

	// Values are the collected metrics at the end of the trial run
	Values []Value `json:"values,omitempty"`
	// PatchOperations are the patches from the experiment evaluated in the context of this trial
	PatchOperations []PatchOperation `json:"patchOperations,omitempty"`

	// Setup tasks that must run before the trial starts (and possibly after it ends)
	SetupTasks []SetupTask `json:"setupTasks,omitempty"`
	// Volumes to make available to setup tasks, typically ConfigMap backed volumes
	SetupVolumes []corev1.Volume `json:"setupVolumes,omitempty"`
	// Service account name for running setup tasks, needs enough permissions to add and remove software
	SetupServiceAccountName string `json:"setupServiceAccountName,omitempty"`
}

TrialSpec defines the desired state of Trial

func (*TrialSpec) DeepCopy

func (in *TrialSpec) DeepCopy() *TrialSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrialSpec.

func (*TrialSpec) DeepCopyInto

func (in *TrialSpec) DeepCopyInto(out *TrialSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TrialStatus

type TrialStatus struct {
	// Assignments is a string representation of the trial assignments for reporting purposes
	Assignments string `json:"assignments"`
	// Values is a string representation of the trial values for reporting purposes
	Values string `json:"values"`
	// StartTime is the effective (possibly adjusted) time the trial run job started
	StartTime *metav1.Time `json:"startTime,omitempty"`
	// CompletionTime is the effective (possibly adjusted) time the trial run job completed
	CompletionTime *metav1.Time `json:"completionTime,omitempty"`
	// Condition is the current state of the trial
	Conditions []TrialCondition `json:"conditions,omitempty"`
}

TrialStatus defines the observed state of Trial

func (*TrialStatus) DeepCopy

func (in *TrialStatus) DeepCopy() *TrialStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrialStatus.

func (*TrialStatus) DeepCopyInto

func (in *TrialStatus) DeepCopyInto(out *TrialStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TrialTemplateSpec

type TrialTemplateSpec struct {
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              TrialSpec `json:"spec"`
}

TrialTemplateSpec is used as a template for creating new trials

func (*TrialTemplateSpec) DeepCopy

func (in *TrialTemplateSpec) DeepCopy() *TrialTemplateSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrialTemplateSpec.

func (*TrialTemplateSpec) DeepCopyInto

func (in *TrialTemplateSpec) DeepCopyInto(out *TrialTemplateSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Value

type Value struct {
	// The metric name the value corresponds to
	Name string `json:"name"`
	// The observed float64 value, formatted as a string
	Value string `json:"value"`
	// The observed float64 error (standard deviation), formatted as a string
	Error string `json:"error,omitempty"`
	// The number of remaining attempts to observer the value, will be automatically set
	// to zero if the metric is successfully collected
	AttemptsRemaining int `json:"attemptsRemaining,omitempty"`
}

Value represents an observed metric value after a trial run has completed successfully. Value names must correspond to metric names on the associated experiment.

func (*Value) DeepCopy

func (in *Value) DeepCopy() *Value

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Value.

func (*Value) DeepCopyInto

func (in *Value) DeepCopyInto(out *Value)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL