func()

in pkg/controllers/egressrules_controller.go [75:94]


func (r *AzureFirewallRulesReconciler) SetupWithManager(mgr ctrl.Manager) error {
	return ctrl.NewControllerManagedBy(mgr).
		For(&azurefirewallrulesv1.AzureFirewallRules{}).
		Watches(&source.Kind{Type: &corev1.Node{}}, &handler.EnqueueRequestForObject{}).
		WithEventFilter(predicate.Funcs{
			UpdateFunc: func(e event.UpdateEvent) bool {
				if _, ok := e.ObjectNew.(*corev1.Node); ok {
					oldObj := e.ObjectOld.(*corev1.Node)
					newObj := e.ObjectNew.(*corev1.Node)

					labelChanged := !reflect.DeepEqual(oldObj.GetLabels(), newObj.GetLabels())
					ipChanged := oldObj.Status.Addresses[0].Address != newObj.Status.Addresses[0].Address
					// Only trigger the reconciler if a specific field has changed.
					return labelChanged || ipChanged
				}
				return true
			},
		}).
		Complete(r)
}