v1alpha1

package
v0.0.0-...-9fb1a10 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2022 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the morphling v1alpha1 API group +kubebuilder:object:generate=true +groupName=morphling.kubedl.io +kubebuilder:subresource:status

Index

Constants

View Source
const (
	Group   = "morphling.kubedl.io"
	Version = "v1alpha1"
)

Variables

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

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

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group-qualified GroupResource.

Types

type AlgorithmName

type AlgorithmName string

AlgorithmName is the supported searching algorithms

const (
	BayesianOpt  AlgorithmName = "BayesianOpt"
	RandomSearch AlgorithmName = "random"
	GridSearch   AlgorithmName = "grid"
)

type AlgorithmSetting

type AlgorithmSetting struct {
	// The name of the key-value pair.
	Name string `json:"name,omitempty"`

	// The value of the key.
	Value string `json:"value,omitempty"`
}

AlgorithmSetting defines the parameters key-value pair of the Opt. algorithm

func (*AlgorithmSetting) DeepCopy

func (in *AlgorithmSetting) DeepCopy() *AlgorithmSetting

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

func (*AlgorithmSetting) DeepCopyInto

func (in *AlgorithmSetting) DeepCopyInto(out *AlgorithmSetting)

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

type AlgorithmSpec

type AlgorithmSpec struct {
	// The name of algorithm for sampling_client: random, grid, bayesian optimization.
	AlgorithmName AlgorithmName `json:"algorithmName,omitempty"`

	// The key-value pairs representing settings for sampling_client algorithms.
	AlgorithmSettings []AlgorithmSetting `json:"algorithmSettings,omitempty"`
}

AlgorithmSpec is the specification of Opt. algorithm

func (*AlgorithmSpec) DeepCopy

func (in *AlgorithmSpec) DeepCopy() *AlgorithmSpec

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

func (*AlgorithmSpec) DeepCopyInto

func (in *AlgorithmSpec) DeepCopyInto(out *AlgorithmSpec)

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

type Category

type Category string

Category of the hyper-parameters to be tuned, for patching use.

const (
	// Computing resources, including cpu, memory, gpumem.
	CategoryResource Category = "resource"

	// Environment variables, set for service pods/deployments.
	CategoryEnv Category = "env"

	// Args for codes running in service pods/deployments.
	CategoryArgs Category = "args"
)

type CollectorKind

type CollectorKind string

type FeasibleSpace

type FeasibleSpace struct {
	// The max value of the search space.
	Max string `json:"max,omitempty"`

	// The min value of the search space.
	Min string `json:"min,omitempty"`

	// The list of possible value.
	List []string `json:"list,omitempty"`

	// The step of sampling_client.
	Step string `json:"step,omitempty"`
}

FeasibleSpace defines the range of the hyper-parameters to be tuned

func (*FeasibleSpace) DeepCopy

func (in *FeasibleSpace) DeepCopy() *FeasibleSpace

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

func (*FeasibleSpace) DeepCopyInto

func (in *FeasibleSpace) DeepCopyInto(out *FeasibleSpace)

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

type Metric

type Metric struct {
	Name  string `json:"name,omitempty"`
	Value string `json:"value,omitempty"`
}

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 ObjectiveSpec

type ObjectiveSpec struct {
	// The type of the objective, including minimize or maximize
	Type ObjectiveType `json:"type,omitempty"`

	// Metric name, e.g., GPUMemConsumptionPerQPS
	ObjectiveMetricName string `json:"objectiveMetricName,omitempty"`
}

ObjectiveSpec defines the optimization obj, e.g., minimize the resource cost per QPS

func (*ObjectiveSpec) DeepCopy

func (in *ObjectiveSpec) DeepCopy() *ObjectiveSpec

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

func (*ObjectiveSpec) DeepCopyInto

func (in *ObjectiveSpec) DeepCopyInto(out *ObjectiveSpec)

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

type ObjectiveType

type ObjectiveType string

ObjectiveType is the optimization obj classes: minimize or maximize

const (
	ObjectiveTypeMinimize ObjectiveType = "minimize"
	ObjectiveTypeMaximize ObjectiveType = "maximize"
)

type ParameterAssignment

type ParameterAssignment struct {
	Name     string   `json:"name,omitempty"`
	Value    string   `json:"value,omitempty"`
	Category Category `json:"category,omitempty"`
}

ParameterAssignment defines the current hyper-parameter value (key-value pair)

func (*ParameterAssignment) DeepCopy

func (in *ParameterAssignment) DeepCopy() *ParameterAssignment

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

func (*ParameterAssignment) DeepCopyInto

func (in *ParameterAssignment) DeepCopyInto(out *ParameterAssignment)

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

type ParameterCategory

type ParameterCategory struct {
	Category   Category        `json:"category,omitempty"`
	Parameters []ParameterSpec `json:"parameters,omitempty"`
}

ParameterCategory id the category of parameters, high-level parameter divisions, including env, args, resource

func (*ParameterCategory) DeepCopy

func (in *ParameterCategory) DeepCopy() *ParameterCategory

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

func (*ParameterCategory) DeepCopyInto

func (in *ParameterCategory) DeepCopyInto(out *ParameterCategory)

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

type ParameterSpec

type ParameterSpec struct {
	Name          string        `json:"name,omitempty"`
	ParameterType ParameterType `json:"parameterType,omitempty"`
	FeasibleSpace FeasibleSpace `json:"feasibleSpace,omitempty"`
}

ParameterSpec is the meta data of a hyper-parameter to be tuned

func (*ParameterSpec) DeepCopy

func (in *ParameterSpec) DeepCopy() *ParameterSpec

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

func (*ParameterSpec) DeepCopyInto

func (in *ParameterSpec) DeepCopyInto(out *ParameterSpec)

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

type ParameterType

type ParameterType string

ParameterType defines the type of hyper-parameter to be tuned, we support the following several kinds of parameters.

const (
	ParameterTypeDouble      ParameterType = "double"
	ParameterTypeInt         ParameterType = "int"
	ParameterTypeDiscrete    ParameterType = "discrete"
	ParameterTypeCategorical ParameterType = "categorical"
)

type ProfilingCondition

type ProfilingCondition struct {
	// Type of experiment condition.
	Type ProfilingConditionType `json:"type"`

	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`

	// A human readable message indicating details about the transition.
	Message string `json:"message,omitempty"`

	// The last time this condition was updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
}

ProfilingCondition describes the state of the experiment at a certain point.

func (*ProfilingCondition) DeepCopy

func (in *ProfilingCondition) DeepCopy() *ProfilingCondition

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

func (*ProfilingCondition) DeepCopyInto

func (in *ProfilingCondition) DeepCopyInto(out *ProfilingCondition)

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

type ProfilingConditionType

type ProfilingConditionType string

ProfilingConditionType defines the status of the ProfilingExperiment

const (
	ProfilingCreated    ProfilingConditionType = "Created"
	ProfilingRunning    ProfilingConditionType = "Running"
	ProfilingRestarting ProfilingConditionType = "Restarting"
	ProfilingSucceeded  ProfilingConditionType = "Succeeded"
	ProfilingFailed     ProfilingConditionType = "Failed"
	ProfilingCompleted  ProfilingConditionType = "Completed"
)

type ProfilingExperiment

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

	Spec   ProfilingExperimentSpec   `json:"spec,omitempty"`
	Status ProfilingExperimentStatus `json:"status,omitempty"`
}

ProfilingExperiment is the Schema for the profilingexperiments API

func (*ProfilingExperiment) DeepCopy

func (in *ProfilingExperiment) DeepCopy() *ProfilingExperiment

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

func (*ProfilingExperiment) DeepCopyInto

func (in *ProfilingExperiment) DeepCopyInto(out *ProfilingExperiment)

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

func (*ProfilingExperiment) DeepCopyObject

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

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

type ProfilingExperimentList

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

ProfilingExperimentList contains a list of ProfilingExperiment +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

func (*ProfilingExperimentList) DeepCopy

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

func (*ProfilingExperimentList) DeepCopyInto

func (in *ProfilingExperimentList) DeepCopyInto(out *ProfilingExperimentList)

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

func (*ProfilingExperimentList) DeepCopyObject

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

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

type ProfilingExperimentSpec

type ProfilingExperimentSpec struct {
	// List of hyperparameter to be tuned.
	TunableParameters []ParameterCategory `json:"tunableParameters,omitempty"`

	// Describes the objective of the experiment.
	Objective ObjectiveSpec `json:"objective,omitempty"`

	// Sampling algorithm, e.g., Bayesian opt.
	Algorithm AlgorithmSpec `json:"algorithm,omitempty"`

	// Maximum number of trials
	MaxNumTrials *int32 `json:"maxNumTrials,omitempty"`

	// Parallelism is the number of concurrent trials.
	Parallelism *int32 `json:"parallelism,omitempty"`

	// The request template in json format, used for testing against the REST API of target service.
	RequestTemplate string `json:"requestTemplate,omitempty"`

	// Client Template to trigger the test against target service
	ClientTemplate v1beta1.JobTemplateSpec `json:"clientTemplate,omitempty"`

	// The target service pod/deployment whose parameters to be tuned
	ServicePodTemplate corev1.PodTemplate `json:"servicePodTemplate,omitempty"`

	// The maximum time in seconds for a deployment to make progress before it is considered to be failed.
	ServiceProgressDeadline *int32 `json:"serviceProgressDeadline,omitempty"`
}

ProfilingExperimentSpec defines the desired state of ProfilingExperiment

func (*ProfilingExperimentSpec) DeepCopy

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

func (*ProfilingExperimentSpec) DeepCopyInto

func (in *ProfilingExperimentSpec) DeepCopyInto(out *ProfilingExperimentSpec)

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

type ProfilingExperimentStatus

type ProfilingExperimentStatus struct {
	// List of observed runtime conditions for this ProfilingExperiment.
	Conditions []ProfilingCondition `json:"conditions,omitempty"`

	// Current optimal parameters
	CurrentOptimalTrial TrialResult `json:"currentOptimalTrial,omitempty"`

	// Sampled configurations and the corresponding object values
	TrialResultList []TrialResult `json:"trialResultList,omitempty"`

	// Completion time of the experiment
	CompletionTime *metav1.Time `json:"completionTime,omitempty"`

	// Start time of the experiment
	StartTime *metav1.Time `json:"startTime,omitempty"`

	// List of trial names which are running.
	RunningTrialList []string `json:"runningTrialList,omitempty"`

	// List of trial names which are pending.
	PendingTrialList []string `json:"pendingTrialList,omitempty"`

	// List of trial names which have already failed.
	FailedTrialList []string `json:"failedTrialList,omitempty"`

	// List of trial names which have already succeeded.
	SucceededTrialList []string `json:"succeededTrialList,omitempty"`

	// List of trial names which have been killed.
	KilledTrialList []string `json:"killedTrialList,omitempty"`

	// TrialsTotal is the total number of trials owned by the experiment.
	TrialsTotal int32 `json:"trialsTotal,omitempty"`

	// How many trials have succeeded.
	TrialsSucceeded int32 `json:"trialsSucceeded,omitempty"`

	// How many trials have been killed.
	TrialsKilled int32 `json:"trialsKilled,omitempty"`

	// How many trials are pending.
	TrialsPending int32 `json:"trialsPending,omitempty"`

	// How many trials are running.
	TrialsRunning int32 `json:"trialsRunning,omitempty"`

	// How many trials have failed.
	TrialsFailed int32 `json:"trialsFailed,omitempty"`
}

func (*ProfilingExperimentStatus) DeepCopy

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

func (*ProfilingExperimentStatus) 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

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.

type TrialAssignment

type TrialAssignment struct {
	// Sampling results
	ParameterAssignments []ParameterAssignment `json:"parameterAssignments,omitempty"`

	//Name of the sampling_client sampling_client result, used to start a trial
	Name string `json:"name,omitempty"`
}

TrialAssignment is the assignment for one trial.

func (*TrialAssignment) DeepCopy

func (in *TrialAssignment) DeepCopy() *TrialAssignment

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

func (*TrialAssignment) DeepCopyInto

func (in *TrialAssignment) DeepCopyInto(out *TrialAssignment)

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

type TrialCondition

type TrialCondition struct {
	// Type of trial condition.
	Type TrialConditionType `json:"type"`

	// Standard Kubernetes object's LastTransitionTime
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`

	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`

	// A human readable message indicating details about the transition.
	Message string `json:"message,omitempty"`

	// The last time this condition was updated.
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
}

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
const (
	TrialRunning   TrialConditionType = "Running"
	TrialSucceeded TrialConditionType = "Succeeded"
	TrialFailed    TrialConditionType = "Failed"
	TrialCreated   TrialConditionType = "Created"
	TrialPending   TrialConditionType = "Pending"
	TrialKilled    TrialConditionType = "Killed"
)

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 TrialResult

type TrialResult struct {
	// Current parameter assignment of the trial.
	TunableParameters []ParameterAssignment `json:"tunableParameters,omitempty"`

	// The observed value for the objective metrics under these parameters, e.g., QPS=100.
	ObjectiveMetricsObserved []Metric `json:"objectiveMetricsObserved,omitempty"`
}

func (*TrialResult) DeepCopy

func (in *TrialResult) DeepCopy() *TrialResult

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

func (*TrialResult) DeepCopyInto

func (in *TrialResult) DeepCopyInto(out *TrialResult)

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

type TrialSpec

type TrialSpec struct {
	// Sampling results, including all the parameter values to be tuned
	SamplingResult []ParameterAssignment `json:"samplingResult,omitempty"`

	// Describes the objective of the experiment.
	Objective ObjectiveSpec `json:"objective,omitempty"`

	// The request template in json format, used for testing against the REST API of target service.
	RequestTemplate string `json:"requestTemplate,omitempty"`

	// The client template to trigger the test against target service.
	ClientTemplate v1beta1.JobTemplateSpec `json:"clientTemplate,omitempty"`

	// The target service pod/deployment whose parameters to be tuned
	ServicePodTemplate corev1.PodTemplate `json:"servicePodTemplate,omitempty"`

	// The maximum time in seconds for a deployment to make progress before it is considered to be failed.
	ServiceProgressDeadline *int32 `json:"serviceProgressDeadline,omitempty"`
}

TrialSpec defines the pressure test task under a specific configuration

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 {
	// Output of the trial, including the TrialAssignment and the Objective value (e.g., QPS)
	TrialResult *TrialResult `json:"trialResult,omitempty"`

	// Observed runtime condition for this Trial.
	Conditions []TrialCondition `json:"conditions,omitempty"`

	// The time this trial was started.
	StartTime *metav1.Time `json:"startTime,omitempty"`

	// The time this trial was completed.
	CompletionTime *metav1.Time `json:"completionTime,omitempty"`
}

TrialStatus defines the status of this pressure test

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.

Directories

Path Synopsis
grpc_proto
health
Package grpc_health_v1 is a generated protocol buffer package.
Package grpc_health_v1 is a generated protocol buffer package.

Jump to

Keyboard shortcuts

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