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
- Variables
- func Resource(resource string) schema.GroupResource
- type Assignment
- type ConfigMapHelmValuesFromSource
- type Experiment
- func (in *Experiment) DeepCopy() *Experiment
- func (in *Experiment) DeepCopyInto(out *Experiment)
- func (in *Experiment) DeepCopyObject() runtime.Object
- func (in *Experiment) GetDefaultLabels() map[string]string
- func (in *Experiment) GetReplicas() int
- func (in *Experiment) GetSelfReference() *corev1.ObjectReference
- func (in *Experiment) SetReplicas(r int)
- type ExperimentList
- type ExperimentSpec
- type ExperimentStatus
- type HelmValue
- type HelmValueSource
- type HelmValuesFromSource
- type Metric
- type MetricType
- type Parameter
- type ParameterSelector
- type PatchOperation
- type PatchTemplate
- type SetupTask
- type Trial
- func (in *Trial) DeepCopy() *Trial
- func (in *Trial) DeepCopyInto(out *Trial)
- func (in *Trial) DeepCopyObject() runtime.Object
- func (in *Trial) ExperimentNamespacedName() types.NamespacedName
- func (in *Trial) GetAssignment(name string) (int64, bool)
- func (in *Trial) GetDefaultLabels() map[string]string
- type TrialCondition
- type TrialConditionType
- type TrialList
- type TrialSpec
- type TrialStatus
- type TrialTemplateSpec
- type Value
Constants ¶
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 ¶
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 ¶
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 ¶
func (in *ConfigMapHelmValuesFromSource) DeepCopy() *ConfigMapHelmValuesFromSource
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapHelmValuesFromSource.
func (*ConfigMapHelmValuesFromSource) DeepCopyInto ¶
func (in *ConfigMapHelmValuesFromSource) DeepCopyInto(out *ConfigMapHelmValuesFromSource)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HelmValue.
func (*HelmValue) DeepCopyInto ¶
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 ¶
func (in *HelmValuesFromSource) DeepCopy() *HelmValuesFromSource
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metric.
func (*Metric) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Parameter.
func (*Parameter) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SetupTask.
func (*SetupTask) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Trial.
func (*Trial) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Trial) DeepCopyObject ¶
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 ¶
Returns an assignment value by name
func (*Trial) GetDefaultLabels ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrialList.
func (*TrialList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TrialList) DeepCopyObject ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrialSpec.
func (*TrialSpec) DeepCopyInto ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Value.
func (*Value) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.