in pkg/controller/jenkins_job/jenkins_job_controller.go [56:90]
func (r *ReconcileJenkinsJob) SetupWithManager(mgr ctrl.Manager, maxConcurrentReconciles int) error {
p := predicate.Funcs{
UpdateFunc: func(e event.UpdateEvent) bool {
oldObject, ok := e.ObjectOld.(*jenkinsApi.JenkinsJob)
if !ok {
return false
}
newObject, ok := e.ObjectNew.(*jenkinsApi.JenkinsJob)
if !ok {
return false
}
if !reflect.DeepEqual(oldObject.Spec, newObject.Spec) {
return true
}
if newObject.DeletionTimestamp != nil {
return true
}
return false
},
}
err := ctrl.NewControllerManagedBy(mgr).
For(&jenkinsApi.JenkinsJob{}, builder.WithPredicates(p)).
WithOptions(controller.Options{MaxConcurrentReconciles: maxConcurrentReconciles}).
Complete(r)
if err != nil {
return fmt.Errorf("failed to create new managed controller: %w", err)
}
return nil
}