func()

in controllers/stage/stage_controller.go [57:88]


func (r *ReconcileStage) SetupWithManager(mgr ctrl.Manager) error {
	p := predicate.Funcs{
		UpdateFunc: func(e event.UpdateEvent) bool {
			oo, ok := e.ObjectOld.(*cdPipeApi.Stage)
			if !ok {
				return false
			}
			no, ok := e.ObjectNew.(*cdPipeApi.Stage)
			if !ok {
				return false
			}
			if !reflect.DeepEqual(oo.Spec, no.Spec) {
				return true
			}
			if no.DeletionTimestamp != nil {
				return true
			}
			if no.Status.ShouldBeHandled {
				return true
			}
			return false
		},
	}
	if err := ctrl.NewControllerManagedBy(mgr).
		For(&cdPipeApi.Stage{}, builder.WithPredicates(p)).
		Watches(&source.Kind{Type: &cdPipeApi.CDPipeline{}}, NewPipelineEventHandler(r.client, r.log)).
		Complete(r); err != nil {
		return fmt.Errorf("failed to create controller manager: %w", err)
	}

	return nil
}