var ( // DefaultJobApiBackOff is the default API backoff period. Exported for tests. DefaultJobApiBackOff = time.Second // MaxJobApiBackOff is the max API backoff period. Exported for tests. MaxJobApiBackOff = time.Minute // DefaultJobPodFailureBackOff is the default pod failure backoff period. Exported for tests. DefaultJobPodFailureBackOff = 10 * time.Second // MaxJobPodFailureBackOff is the max pod failure backoff period. Exported for tests. MaxJobPodFailureBackOff = 10 * time.Minute // MaxUncountedPods is the maximum size the slices in // .status.uncountedTerminatedPods should have to keep their representation // roughly below 20 KB. Exported for tests MaxUncountedPods = 500 // MaxPodCreateDeletePerSync is the maximum number of pods that can be // created or deleted in a single sync call. Exported for tests. MaxPodCreateDeletePerSync = 500 )
func IsJobFinished(j *batch.Job) bool
IsJobFinished checks whether the given Job has finished execution. It does not discriminate between successful and failed terminations.
Controller ensures that all Job objects have corresponding pods to run their configured workload.
type Controller struct {
// contains filtered or unexported fields
}
func NewController(ctx context.Context, podInformer coreinformers.PodInformer, jobInformer batchinformers.JobInformer, kubeClient clientset.Interface) (*Controller, error)
NewController creates a new Job controller that keeps the relevant pods in sync with their corresponding Job objects.
func (jm *Controller) Run(ctx context.Context, workers int)
Run the main goroutine responsible for watching and syncing jobs.