Documentation ¶
Index ¶
Constants ¶
const ( // TaskSpecKey task spec key used in pod annotation TaskSpecKey = "volcano.sh/task-spec" // JobNameKey job name key used in pod annotation / labels JobNameKey = "volcano.sh/job-name" // JobNamespaceKey job namespace key JobNamespaceKey = "volcano.sh/job-namespace" // DefaultTaskSpec default task spec value DefaultTaskSpec = "default" // JobVersion job version key used in pod annotation JobVersion = "volcano.sh/job-version" // JobTypeKey job type key used in labels JobTypeKey = "volcano.sh/job-type" // PodgroupNamePrefix podgroup name prefix PodgroupNamePrefix = "podgroup-" )
const GroupName = "batch.volcano.sh"
GroupName is the group name used in this package.
Variables ¶
var ( // SchemeBuilder points to a list of functions added to Scheme. SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) // AddToScheme applies all the stored functions to the scheme. AddToScheme = SchemeBuilder.AddToScheme )
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
SchemeGroupVersion is the group version used to register these objects.
Functions ¶
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group-qualified GroupResource.
Types ¶
type Action ¶
type Action string
Action is the action that Job controller will take according to the event.
const ( // AbortJobAction if this action is set, the whole job will be aborted: // all Pod of Job will be evicted, and no Pod will be recreated AbortJobAction Action = "AbortJob" // RestartJobAction if this action is set, the whole job will be restarted RestartJobAction Action = "RestartJob" // RestartTaskAction if this action is set, only the task will be restarted; default action. // This action can not work together with job level events, e.g. JobUnschedulable RestartTaskAction Action = "RestartTask" // TerminateJobAction if this action is set, the whole job wil be terminated // and can not be resumed: all Pod of Job will be evicted, and no Pod will be recreated. TerminateJobAction Action = "TerminateJob" // CompleteJobAction if this action is set, the unfinished pods will be killed, job completed. CompleteJobAction Action = "CompleteJob" // ResumeJobAction is the action to resume an aborted job. ResumeJobAction Action = "ResumeJob" // SyncJobAction is the action to sync Job/Pod status. SyncJobAction Action = "SyncJob" // EnqueueAction is the action to sync Job inqueue status. EnqueueAction Action = "EnqueueJob" )
type Event ¶
type Event string
Event represent the phase of Job, e.g. pod-failed.
const ( // AnyEvent means all event AnyEvent Event = "*" // PodFailedEvent is triggered if Pod was failed PodFailedEvent Event = "PodFailed" // PodEvictedEvent is triggered if Pod was deleted PodEvictedEvent Event = "PodEvicted" // JobUnknownEvent These below are several events can lead to job 'Unknown' // 1. Task Unschedulable, this is triggered when part of // pods can't be scheduled while some are already running in gang-scheduling case. JobUnknownEvent Event = "Unknown" // TaskCompletedEvent is triggered if the 'Replicas' amount of pods in one task are succeed TaskCompletedEvent Event = "TaskCompleted" // OutOfSyncEvent is triggered if Pod/Job were updated OutOfSyncEvent Event = "OutOfSync" // CommandIssuedEvent is triggered if a command is raised by user CommandIssuedEvent Event = "CommandIssued" )
type Job ¶
type Job struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Specification of the desired behavior of a cron job, including the minAvailable // +optional Spec JobSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Current status of Job // +optional Status JobStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` }
Job defines the volcano job
func (*Job) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Job.
func (*Job) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Job) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type JobEvent ¶
type JobEvent string
JobEvent job event
const ( // CommandIssued command issued event is generated if a command is raised by user CommandIssued JobEvent = "CommandIssued" // PluginError plugin error event is generated if error happens PluginError JobEvent = "PluginError" // PVCError pvc error event is generated if error happens during IO creation PVCError JobEvent = "PVCError" // PodGroupError pod grp error event is generated if error happens during pod grp creation PodGroupError JobEvent = "PodGroupError" //ExecuteAction action issued event for each action ExecuteAction JobEvent = "ExecuteAction" //JobStatusError is generated if update job status failed JobStatusError JobEvent = "JobStatusError" )
type JobList ¶
type JobList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` Items []Job `json:"items" protobuf:"bytes,2,rep,name=items"` }
JobList defines the list of jobs
func (*JobList) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobList.
func (*JobList) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JobList) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
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" )
type JobSpec ¶
type JobSpec struct { // SchedulerName is the default value of `tasks.template.spec.schedulerName`. // +optional SchedulerName string `json:"schedulerName,omitempty" protobuf:"bytes,1,opt,name=schedulerName"` // The minimal available pods to run for this Job // +optional MinAvailable int32 `json:"minAvailable,omitempty" protobuf:"bytes,2,opt,name=minAvailable"` // The volumes mount on Job Volumes []VolumeSpec `json:"volumes,omitempty" protobuf:"bytes,3,opt,name=volumes"` // Tasks specifies the task specification of Job // +optional Tasks []TaskSpec `json:"tasks,omitempty" protobuf:"bytes,4,opt,name=tasks"` // Specifies the default lifecycle of tasks // +optional Policies []LifecyclePolicy `json:"policies,omitempty" protobuf:"bytes,5,opt,name=policies"` // Specifies the plugin of job // Key is plugin name, value is the arguments of the plugin // +optional Plugins map[string][]string `json:"plugins,omitempty" protobuf:"bytes,6,opt,name=plugins"` //Specifies the queue that will be used in the scheduler, "default" queue is used this leaves empty. Queue string `json:"queue,omitempty" protobuf:"bytes,7,opt,name=queue"` // Specifies the maximum number of retries before marking this Job failed. // Defaults to 3. // +optional MaxRetry int32 `json:"maxRetry,omitempty" protobuf:"bytes,8,opt,name=maxRetry"` // ttlSecondsAfterFinished limits the lifetime of a Job that has finished // execution (either Completed or Failed). If this field is set, // ttlSecondsAfterFinished after the Job finishes, it is eligible to be // automatically deleted. If this field is unset, // the Job won't be automatically deleted. If this field is set to zero, // the Job becomes eligible to be deleted immediately after it finishes. // +optional TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty" protobuf:"varint,9,opt,name=ttlSecondsAfterFinished"` // If specified, indicates the job's priority. // +optional PriorityClassName string `json:"priorityClassName,omitempty" protobuf:"bytes,10,opt,name=priorityClassName"` }
JobSpec describes how the job execution will look like and when it will actually run
func (*JobSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSpec.
func (*JobSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobState ¶
type JobState struct { // The phase of Job. // +optional Phase JobPhase `json:"phase,omitempty" protobuf:"bytes,1,opt,name=phase"` // Unique, one-word, CamelCase reason for the phase's last transition. // +optional Reason string `json:"reason,omitempty" protobuf:"bytes,2,opt,name=reason"` // Human-readable message indicating details about last transition. // +optional Message string `json:"message,omitempty" protobuf:"bytes,3,opt,name=message"` // Last time the condition transit from one phase to another. // +optional LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,4,opt,name=lastTransitionTime"` }
JobState contains details for the current state of the job.
func (*JobState) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobState.
func (*JobState) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobStatus ¶
type JobStatus struct { // Current state of Job. State JobState `json:"state,omitempty" protobuf:"bytes,1,opt,name=state"` // The minimal available pods to run for this Job // +optional MinAvailable int32 `json:"minAvailable,omitempty" protobuf:"bytes,2,opt,name=minAvailable"` // The number of pending pods. // +optional Pending int32 `json:"pending,omitempty" protobuf:"bytes,3,opt,name=pending"` // The number of running pods. // +optional Running int32 `json:"running,omitempty" protobuf:"bytes,4,opt,name=running"` // The number of pods which reached phase Succeeded. // +optional Succeeded int32 `json:"succeeded,omitempty" protobuf:"bytes,5,opt,name=succeeded"` // The number of pods which reached phase Failed. // +optional Failed int32 `json:"failed,omitempty" protobuf:"bytes,6,opt,name=failed"` // The number of pods which reached phase Terminating. // +optional Terminating int32 `json:"terminating,omitempty" protobuf:"bytes,7,opt,name=terminating"` // The number of pods which reached phase Unknown. // +optional Unknown int32 `json:"unknown,omitempty" protobuf:"bytes,8,opt,name=unknown"` //Current version of job Version int32 `json:"version,omitempty" protobuf:"bytes,9,opt,name=version"` // The number of Job retries. // +optional RetryCount int32 `json:"retryCount,omitempty" protobuf:"bytes,10,opt,name=retryCount"` // The resources that controlled by this job, e.g. Service, ConfigMap ControlledResources map[string]string `json:"controlledResources,omitempty" protobuf:"bytes,11,opt,name=controlledResources"` }
JobStatus represents the current status of a Job
func (*JobStatus) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobStatus.
func (*JobStatus) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LifecyclePolicy ¶
type LifecyclePolicy struct { // The action that will be taken to the PodGroup according to Event. // One of "Restart", "None". // Default to None. // +optional Action Action `json:"action,omitempty" protobuf:"bytes,1,opt,name=action"` // The Event recorded by scheduler; the controller takes actions // according to this Event. // +optional Event Event `json:"event,omitempty" protobuf:"bytes,2,opt,name=event"` // The Events recorded by scheduler; the controller takes actions // according to this Events. // +optional Events []Event `json:"events,omitempty" protobuf:"bytes,3,opt,name=events"` // The exit code of the pod container, controller will take action // according to this code. // Note: only one of `Event` or `ExitCode` can be specified. // +optional ExitCode *int32 `json:"exitCode,omitempty" protobuf:"bytes,5,opt,name=exitCode"` // Timeout is the grace period for controller to take actions. // Default to nil (take action immediately). // +optional Timeout *metav1.Duration `json:"timeout,omitempty" protobuf:"bytes,4,opt,name=timeout"` }
LifecyclePolicy specifies the lifecycle and error handling of task and job.
func (*LifecyclePolicy) DeepCopy ¶
func (in *LifecyclePolicy) DeepCopy() *LifecyclePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecyclePolicy.
func (*LifecyclePolicy) DeepCopyInto ¶
func (in *LifecyclePolicy) DeepCopyInto(out *LifecyclePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TaskSpec ¶
type TaskSpec struct { // Name specifies the name of tasks Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` // Replicas specifies the replicas of this TaskSpec in Job Replicas int32 `json:"replicas,omitempty" protobuf:"bytes,2,opt,name=replicas"` // Specifies the pod that will be created for this TaskSpec // when executing a Job Template v1.PodTemplateSpec `json:"template,omitempty" protobuf:"bytes,3,opt,name=template"` // Specifies the lifecycle of task // +optional Policies []LifecyclePolicy `json:"policies,omitempty" protobuf:"bytes,4,opt,name=policies"` }
TaskSpec specifies the task specification of Job
func (*TaskSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TaskSpec.
func (*TaskSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type VolumeSpec ¶
type VolumeSpec struct { // Path within the container at which the volume should be mounted. Must // not contain ':'. MountPath string `json:"mountPath" protobuf:"bytes,1,opt,name=mountPath"` // defined the PVC name VolumeClaimName string `json:"volumeClaimName,omitempty" protobuf:"bytes,2,opt,name=volumeClaimName"` // VolumeClaim defines the PVC used by the VolumeMount. VolumeClaim *v1.PersistentVolumeClaimSpec `json:"volumeClaim,omitempty" protobuf:"bytes,3,opt,name=volumeClaim"` }
VolumeSpec defines the specification of Volume, e.g. PVC
func (*VolumeSpec) DeepCopy ¶
func (in *VolumeSpec) DeepCopy() *VolumeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeSpec.
func (*VolumeSpec) DeepCopyInto ¶
func (in *VolumeSpec) DeepCopyInto(out *VolumeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.