Documentation
¶
Overview ¶
Package v1 contains API Schema definitions for the training v1 API group. +kubebuilder:object:generate=true +groupName=training.exalsius.ai
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "training.exalsius.ai", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type DDPJob ¶
type DDPJob struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec DDPJobSpec `json:"spec,omitempty"`
Status DDPJobStatus `json:"status,omitempty"`
}
DDPJob is the Schema for the ddpjobs API.
func (*DDPJob) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DDPJob.
func (*DDPJob) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DDPJob) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DDPJobList ¶
type DDPJobList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DDPJob `json:"items"`
}
DDPJobList contains a list of DDPJob.
func (*DDPJobList) DeepCopy ¶
func (in *DDPJobList) DeepCopy() *DDPJobList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DDPJobList.
func (*DDPJobList) DeepCopyInto ¶
func (in *DDPJobList) DeepCopyInto(out *DDPJobList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DDPJobList) DeepCopyObject ¶
func (in *DDPJobList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DDPJobSpec ¶
type DDPJobSpec struct {
// CPUJob describes if the job should be running on a CPU.
// Mainly used for testing purposes, defaults to false if not provided
// +optional
CPUJob *bool `json:"cpuJob,omitempty"`
// GPUTypes describes the list of GPU types to use for training
// Currently, the user can specify different GPU types which the exalsius-cli uses to find the cheapest prices
// across different cloud providers and regions. When specified in the CRD, it does not have an effect yet-
// TODO: think about removing this field from the CRD and create a specific exalsius Job description file?
// +optional
GPUTypes []string `json:"gpuTypes,omitempty"`
// TargetColony describes the colony to run the training job on.
// If not provided, the job will be run on the management cluster.
// +optional
TargetColony *string `json:"targetColony,omitempty"`
// Parallelism describes the number of GPUs (Pods) to use for training
Parallelism int32 `json:"parallelism,omitempty"`
// NProcPerNode describes the number of processes per node (GPU per pod)
NProcPerNode int32 `json:"nprocPerNode,omitempty"`
// Image describes the docker image with the training code
Image string `json:"image,omitempty"`
// ScriptPath describes the path to the training script
ScriptPath string `json:"scriptPath,omitempty"`
// WandBAPIKey describes the WandB API key
WandBAPIKey string `json:"wandbApiKey,omitempty"`
// Args describes the arguments to pass to the training script
Args []string `json:"args,omitempty"`
}
DDPJobSpec defines the desired state of DDPJob.
func (*DDPJobSpec) DeepCopy ¶
func (in *DDPJobSpec) DeepCopy() *DDPJobSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DDPJobSpec.
func (*DDPJobSpec) DeepCopyInto ¶
func (in *DDPJobSpec) DeepCopyInto(out *DDPJobSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DDPJobStatus ¶
type DDPJobStatus struct {
JobName string `json:"jobName,omitempty"` // Name of the training job
Phase JobPhase `json:"phase,omitempty"` // Phase of the training job
}
DDPJobStatus defines the observed state of DDPJob.
func (*DDPJobStatus) DeepCopy ¶
func (in *DDPJobStatus) DeepCopy() *DDPJobStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DDPJobStatus.
func (*DDPJobStatus) DeepCopyInto ¶
func (in *DDPJobStatus) DeepCopyInto(out *DDPJobStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobPhase ¶
type JobPhase string
JobPhase defines the phase of the job.
const ( // Pending is the phase that job is pending in the queue, waiting for scheduling decision Pending JobPhase = "Pending" // Aborting is the phase that job is aborted, waiting for releasing pods Aborting JobPhase = "Aborting" // Aborted is the phase that job is aborted by user or error handling Aborted JobPhase = "Aborted" // Running is the phase that minimal available tasks of Job are running Running JobPhase = "Running" // Restarting is the phase that the Job is restarted, waiting for pod releasing and recreating Restarting JobPhase = "Restarting" // Completing is the phase that required tasks of job are completed, job starts to clean up Completing JobPhase = "Completing" // Completed is the phase that all tasks of Job are completed Completed JobPhase = "Completed" // Terminating is the phase that the Job is terminated, waiting for releasing pods Terminating JobPhase = "Terminating" // Terminated is the phase that the job is finished unexpected, e.g. events Terminated JobPhase = "Terminated" // Failed is the phase that the job is restarted failed reached the maximum number of retries. Failed JobPhase = "Failed" )