Documentation ¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the batch v1alpha2 API group +kubebuilder:object:generate=true +groupName=jobset.x-k8s.io
+k8s:openapi-gen=true
Index ¶
- Constants
- Variables
- func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
- func Resource(resource string) schema.GroupResource
- type FailurePolicy
- type JobSet
- type JobSetConditionType
- type JobSetList
- type JobSetSpec
- type JobSetStatus
- type Network
- type Operator
- type ReplicatedJob
- type ReplicatedJobStatus
- type StartupPolicy
- type StartupPolicyOptions
- type SuccessPolicy
Constants ¶
const ( JobSetNameKey string = "jobset.sigs.k8s.io/jobset-name" ReplicatedJobReplicas string = "jobset.sigs.k8s.io/replicatedjob-replicas" ReplicatedJobNameKey string = "jobset.sigs.k8s.io/replicatedjob-name" JobIndexKey string = "jobset.sigs.k8s.io/job-index" JobKey string = "jobset.sigs.k8s.io/job-key" JobNameKey string = "job-name" // TODO(#26): Migrate to the fully qualified label name. // ExclusiveKey is an annotation that can be set on the JobSet or on a ReplicatedJob template. // If set at the JobSet level, all child jobs from all ReplicatedJobs will be scheduled using exclusive // job placement per topology group (defined as the label value). // If set at the ReplicatedJob level, all child jobs from the target ReplicatedJobs will be scheduled // using exclusive job placement per topology group. ExclusiveKey string = "alpha.jobset.sigs.k8s.io/exclusive-topology" // NodeSelectorStrategyKey is an annotation that acts as a flag, the value does not matter. // If set, the JobSet controller will automatically inject nodeSelectors for the JobSetNameKey label to // ensure exclusive job placement per topology, instead of injecting pod affinity/anti-affinites for this. // The user must add the JobSet name node label to the desired topologies separately. NodeSelectorStrategyKey string = "alpha.jobset.sigs.k8s.io/node-selector" NamespacedJobKey string = "alpha.jobset.sigs.k8s.io/namespaced-job" NoScheduleTaintKey string = "alpha.jobset.sigs.k8s.io/no-schedule" // JobSetControllerName is the reserved value for the managedBy field for the built-in // JobSet controller. JobSetControllerName = "jobset.sigs.k8s.io/jobset-controller" )
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "jobset.x-k8s.io", Version: "v1alpha2"} // SchemeGroupVersion is alias to GroupVersion for client-go libraries. // It is required by pkg/client/informers/externalversions/... SchemeGroupVersion = GroupVersion // 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 ¶
func GetOpenAPIDefinitions ¶
func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource is required by pkg/client/listers/...
Types ¶
type FailurePolicy ¶
type FailurePolicy struct { // MaxRestarts defines the limit on the number of JobSet restarts. // A restart is achieved by recreating all active child jobs. MaxRestarts int32 `json:"maxRestarts,omitempty"` }
func (*FailurePolicy) DeepCopy ¶
func (in *FailurePolicy) DeepCopy() *FailurePolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FailurePolicy.
func (*FailurePolicy) DeepCopyInto ¶
func (in *FailurePolicy) DeepCopyInto(out *FailurePolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobSet ¶
type JobSet struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec JobSetSpec `json:"spec,omitempty"` Status JobSetStatus `json:"status,omitempty"` }
JobSet is the Schema for the jobsets API
func (*JobSet) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSet.
func (*JobSet) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JobSet) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type JobSetConditionType ¶
type JobSetConditionType string
const ( // JobSetCompleted means the job has completed its execution. JobSetCompleted JobSetConditionType = "Completed" // JobSetFailed means the job has failed its execution. JobSetFailed JobSetConditionType = "Failed" // JobSetSuspended means the job is suspended. JobSetSuspended JobSetConditionType = "Suspended" // JobSetStartupPolicyInProgress means the StartupPolicy is in progress. JobSetStartupPolicyInProgress JobSetConditionType = "StartupPolicyInProgress" // JobSetStartupPolicyCompleted means the StartupPolicy has completed. JobSetStartupPolicyCompleted JobSetConditionType = "StartupPolicyCompleted" )
These are built-in conditions of a JobSet.
type JobSetList ¶
type JobSetList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []JobSet `json:"items"` }
+kubebuilder:object:root=true JobSetList contains a list of JobSet
func (*JobSetList) DeepCopy ¶
func (in *JobSetList) DeepCopy() *JobSetList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSetList.
func (*JobSetList) DeepCopyInto ¶
func (in *JobSetList) DeepCopyInto(out *JobSetList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*JobSetList) DeepCopyObject ¶
func (in *JobSetList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type JobSetSpec ¶
type JobSetSpec struct { // ReplicatedJobs is the group of jobs that will form the set. // +listType=map // +listMapKey=name ReplicatedJobs []ReplicatedJob `json:"replicatedJobs,omitempty"` // Network defines the networking options for the jobset. // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" // +optional Network *Network `json:"network,omitempty"` // SuccessPolicy configures when to declare the JobSet as // succeeded. // The JobSet is always declared succeeded if all jobs in the set // finished with status complete. // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" SuccessPolicy *SuccessPolicy `json:"successPolicy,omitempty"` // FailurePolicy, if set, configures when to declare the JobSet as // failed. // The JobSet is always declared failed if any job in the set // finished with status failed. // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" FailurePolicy *FailurePolicy `json:"failurePolicy,omitempty"` // StartupPolicy, if set, configures in what order jobs must be started // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable" StartupPolicy *StartupPolicy `json:"startupPolicy,omitempty"` // Suspend suspends all running child Jobs when set to true. Suspend *bool `json:"suspend,omitempty"` // ManagedBy is used to indicate the controller or entity that manages a JobSet ManagedBy *string `json:"managedBy,omitempty"` // TTLSecondsAfterFinished limits the lifetime of a JobSet that has finished // execution (either Complete or Failed). If this field is set, // TTLSecondsAfterFinished after the JobSet finishes, it is eligible to be // automatically deleted. When the JobSet is being deleted, its lifecycle // guarantees (e.g. finalizers) will be honored. If this field is unset, // the JobSet won't be automatically deleted. If this field is set to zero, // the JobSet becomes eligible to be deleted immediately after it finishes. // +kubebuilder:validation:Minimum=0 // +optional TTLSecondsAfterFinished *int32 `json:"ttlSecondsAfterFinished,omitempty"` }
JobSetSpec defines the desired state of JobSet
func (*JobSetSpec) DeepCopy ¶
func (in *JobSetSpec) DeepCopy() *JobSetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSetSpec.
func (*JobSetSpec) DeepCopyInto ¶
func (in *JobSetSpec) DeepCopyInto(out *JobSetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type JobSetStatus ¶
type JobSetStatus struct { // +optional // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty"` // Restarts tracks the number of times the JobSet has restarted (i.e. recreated in case of RecreateAll policy). Restarts int32 `json:"restarts,omitempty"` // ReplicatedJobsStatus track the number of JobsReady for each replicatedJob. // +optional // +listType=map // +listMapKey=name ReplicatedJobsStatus []ReplicatedJobStatus `json:"replicatedJobsStatus,omitempty"` }
JobSetStatus defines the observed state of JobSet
func (*JobSetStatus) DeepCopy ¶
func (in *JobSetStatus) DeepCopy() *JobSetStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JobSetStatus.
func (*JobSetStatus) DeepCopyInto ¶
func (in *JobSetStatus) DeepCopyInto(out *JobSetStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Network ¶
type Network struct { // EnableDNSHostnames allows pods to be reached via their hostnames. // Pods will be reachable using the fully qualified pod hostname: // <jobSet.name>-<spec.replicatedJob.name>-<job-index>-<pod-index>.<subdomain> // +optional EnableDNSHostnames *bool `json:"enableDNSHostnames,omitempty"` // Subdomain is an explicit choice for a network subdomain name // When set, any replicated job in the set is added to this network. // Defaults to <jobSet.name> if not set. // +optional Subdomain string `json:"subdomain,omitempty"` }
func (*Network) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Network.
func (*Network) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Operator ¶
type Operator string
Operator defines the target of a SuccessPolicy or FailurePolicy.
type ReplicatedJob ¶
type ReplicatedJob struct { // Name is the name of the entry and will be used as a suffix // for the Job name. Name string `json:"name"` // Template defines the template of the Job that will be created. Template batchv1.JobTemplateSpec `json:"template"` // Replicas is the number of jobs that will be created from this ReplicatedJob's template. // Jobs names will be in the format: <jobSet.name>-<spec.replicatedJob.name>-<job-index> // +kubebuilder:default=1 Replicas int32 `json:"replicas,omitempty"` }
func (*ReplicatedJob) DeepCopy ¶
func (in *ReplicatedJob) DeepCopy() *ReplicatedJob
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicatedJob.
func (*ReplicatedJob) DeepCopyInto ¶
func (in *ReplicatedJob) DeepCopyInto(out *ReplicatedJob)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ReplicatedJobStatus ¶
type ReplicatedJobStatus struct { // Name of the ReplicatedJob. Name string `json:"name"` // Ready is the number of child Jobs where the number of ready pods and completed pods // is greater than or equal to the total expected pod count for the Job (i.e., the minimum // of job.spec.parallelism and job.spec.completions). Ready int32 `json:"ready"` // Succeeded is the number of successfully completed child Jobs. Succeeded int32 `json:"succeeded"` // Failed is the number of failed child Jobs. Failed int32 `json:"failed"` // Active is the number of child Jobs with at least 1 pod in a running or pending state // which are not marked for deletion. Active int32 `json:"active"` // Suspended is the number of child Jobs which are in a suspended state. Suspended int32 `json:"suspended"` }
ReplicatedJobStatus defines the observed ReplicatedJobs Readiness.
func (*ReplicatedJobStatus) DeepCopy ¶
func (in *ReplicatedJobStatus) DeepCopy() *ReplicatedJobStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicatedJobStatus.
func (*ReplicatedJobStatus) DeepCopyInto ¶
func (in *ReplicatedJobStatus) DeepCopyInto(out *ReplicatedJobStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StartupPolicy ¶ added in v0.4.0
type StartupPolicy struct { // StartupPolicyOrder determines the startup order of the ReplicatedJobs. // AnyOrder means to start replicated jobs in any order. // InOrder means to start them as they are listed in the JobSet. A ReplicatedJob is started only // when all the jobs of the previous one are ready. // +kubebuilder:validation:Enum=AnyOrder;InOrder StartupPolicyOrder StartupPolicyOptions `json:"startupPolicyOrder"` }
func (*StartupPolicy) DeepCopy ¶ added in v0.4.0
func (in *StartupPolicy) DeepCopy() *StartupPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StartupPolicy.
func (*StartupPolicy) DeepCopyInto ¶ added in v0.4.0
func (in *StartupPolicy) DeepCopyInto(out *StartupPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StartupPolicyOptions ¶ added in v0.4.0
type StartupPolicyOptions string
const ( // This is the default setting // AnyOrder means that we will start the replicated jobs // without any specific order. AnyOrder StartupPolicyOptions = "AnyOrder" // InOrder starts the replicated jobs in order // that they are listed. InOrder StartupPolicyOptions = "InOrder" )
type SuccessPolicy ¶
type SuccessPolicy struct { // Operator determines either All or Any of the selected jobs should succeed to consider the JobSet successful // +kubebuilder:validation:Enum=All;Any Operator Operator `json:"operator"` // TargetReplicatedJobs are the names of the replicated jobs the operator will apply to. // A null or empty list will apply to all replicatedJobs. // +optional // +listType=atomic TargetReplicatedJobs []string `json:"targetReplicatedJobs,omitempty"` }
func (*SuccessPolicy) DeepCopy ¶
func (in *SuccessPolicy) DeepCopy() *SuccessPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SuccessPolicy.
func (*SuccessPolicy) DeepCopyInto ¶
func (in *SuccessPolicy) DeepCopyInto(out *SuccessPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.