var controllerKind …
var nextScheduleDelta …
type ControllerV2 …
func NewControllerV2(ctx context.Context, jobInformer batchv1informers.JobInformer, cronJobsInformer batchv1informers.CronJobInformer, kubeClient clientset.Interface) (*ControllerV2, error) { … }
func (jm *ControllerV2) Run(ctx context.Context, workers int) { … }
func (jm *ControllerV2) worker(ctx context.Context) { … }
func (jm *ControllerV2) processNextWorkItem(ctx context.Context) bool { … }
func (jm *ControllerV2) sync(ctx context.Context, cronJobKey string) (*time.Duration, error) { … }
func (jm *ControllerV2) resolveControllerRef(namespace string, controllerRef *metav1.OwnerReference) *batchv1.CronJob { … }
func (jm *ControllerV2) getJobsToBeReconciled(cronJob *batchv1.CronJob) ([]*batchv1.Job, error) { … }
func (jm *ControllerV2) addJob(obj interface{ … }
func (jm *ControllerV2) updateJob(old, cur interface{ … }
func (jm *ControllerV2) deleteJob(obj interface{ … }
func (jm *ControllerV2) enqueueController(obj interface{ … }
func (jm *ControllerV2) enqueueControllerAfter(obj interface{ … }
func (jm *ControllerV2) updateCronJob(logger klog.Logger, old interface{ … }
func (jm *ControllerV2) syncCronJob(
ctx context.Context,
cronJob *batchv1.CronJob,
jobs []*batchv1.Job) (*time.Duration, bool, error) { … }
func getJobName(cj *batchv1.CronJob, scheduledTime time.Time) string { … }
func (jm *ControllerV2) cleanupFinishedJobs(ctx context.Context, cj *batchv1.CronJob, js []*batchv1.Job) bool { … }
func (jm *ControllerV2) getFinishedStatus(j *batchv1.Job) (bool, batchv1.JobConditionType) { … }
func (jm *ControllerV2) removeOldestJobs(ctx context.Context, cj *batchv1.CronJob, js []*batchv1.Job, maxJobs int32) bool { … }
func deleteJob(logger klog.Logger, cj *batchv1.CronJob, job *batchv1.Job, jc jobControlInterface, recorder record.EventRecorder) bool { … }
func getRef(object runtime.Object) (*corev1.ObjectReference, error) { … }
func formatSchedule(cj *batchv1.CronJob, recorder record.EventRecorder) string { … }