@@ -74,20 +74,23 @@ func (r *IngressReconciler) SetupWithManager(mgr ctrl.Manager) error {
7474 // Check and store EndpointSlice API support
7575 r .supportsEndpointSlice = pkgutils .HasAPIResource (mgr , & discoveryv1.EndpointSlice {})
7676
77+ eventFilters := []predicate.Predicate {
78+ predicate.GenerationChangedPredicate {},
79+ predicate.AnnotationChangedPredicate {},
80+ predicate .NewPredicateFuncs (TypePredicate [* corev1.Secret ]()),
81+ }
82+
83+ if ! r .supportsEndpointSlice {
84+ eventFilters = append (eventFilters , predicate .NewPredicateFuncs (TypePredicate [* corev1.Endpoints ]()))
85+ }
86+
7787 bdr := ctrl .NewControllerManagedBy (mgr ).
7888 For (& networkingv1.Ingress {},
7989 builder .WithPredicates (
8090 predicate .NewPredicateFuncs (r .checkIngressClass ),
8191 ),
8292 ).
83- WithEventFilter (
84- predicate .Or (
85- predicate.GenerationChangedPredicate {},
86- predicate.AnnotationChangedPredicate {},
87- predicate .NewPredicateFuncs (TypePredicate [* corev1.Endpoints ]()),
88- predicate .NewPredicateFuncs (TypePredicate [* corev1.Secret ]()),
89- ),
90- ).
93+ WithEventFilter (predicate .Or (eventFilters ... )).
9194 Watches (
9295 & networkingv1.IngressClass {},
9396 handler .EnqueueRequestsFromMapFunc (r .listIngressForIngressClass ),
@@ -97,18 +100,10 @@ func (r *IngressReconciler) SetupWithManager(mgr ctrl.Manager) error {
97100 )
98101
99102 // Conditionally watch EndpointSlice or Endpoints based on cluster API support
100- if r .supportsEndpointSlice {
101- bdr = bdr .Watches (
102- & discoveryv1.EndpointSlice {},
103- handler .EnqueueRequestsFromMapFunc (r .listIngressesByService ),
104- )
105- } else {
106- r .Log .Info ("EndpointSlice API not available, falling back to Endpoints API for service discovery" )
107- bdr = bdr .Watches (
108- & corev1.Endpoints {},
109- handler .EnqueueRequestsFromMapFunc (r .listIngressesByEndpoints ),
110- )
111- }
103+ bdr = watchEndpointSliceOrEndpoints (bdr , r .supportsEndpointSlice ,
104+ r .listIngressesByService ,
105+ r .listIngressesByEndpoints ,
106+ r .Log )
112107
113108 return bdr .
114109 Watches (
0 commit comments