This is an automated email from the ASF dual-hosted git repository.

ronething pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git


The following commit(s) were added to refs/heads/master by this push:
     new 83811134 fix: add more event filter across controllers (#2449)
83811134 is described below

commit 83811134b510a942c0b11d71c9f4d99584c25c07
Author: Ashing Zheng <axing...@gmail.com>
AuthorDate: Fri Jul 4 13:22:11 2025 +0800

    fix: add more event filter across controllers (#2449)
    
    Signed-off-by: ashing <axing...@gmail.com>
---
 internal/controller/apisixconsumer_controller.go                 | 1 +
 internal/controller/apisixroute_controller.go                    | 9 ++++-----
 internal/controller/apisixtls_controller.go                      | 1 +
 internal/controller/consumer_controller.go                       | 5 +----
 internal/controller/gateway_controller.go                        | 5 +----
 .../{gatewayclass_congroller.go => gatewayclass_controller.go}   | 0
 internal/controller/gatewayproxy_controller.go                   | 7 +++++++
 internal/controller/ingress_controller.go                        | 1 +
 internal/controller/ingressclass_controller.go                   | 6 ++----
 internal/controller/utils.go                                     | 7 +++++++
 10 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/internal/controller/apisixconsumer_controller.go 
b/internal/controller/apisixconsumer_controller.go
index de132ac1..eb9b3c73 100644
--- a/internal/controller/apisixconsumer_controller.go
+++ b/internal/controller/apisixconsumer_controller.go
@@ -117,6 +117,7 @@ func (r *ApisixConsumerReconciler) SetupWithManager(mgr 
ctrl.Manager) error {
                        predicate.Or(
                                predicate.GenerationChangedPredicate{},
                                predicate.AnnotationChangedPredicate{},
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
                        ),
                ).
                Watches(
diff --git a/internal/controller/apisixroute_controller.go 
b/internal/controller/apisixroute_controller.go
index 4806fbdd..99fee292 100644
--- a/internal/controller/apisixroute_controller.go
+++ b/internal/controller/apisixroute_controller.go
@@ -63,13 +63,12 @@ func (r *ApisixRouteReconciler) SetupWithManager(mgr 
ctrl.Manager) error {
                WithEventFilter(
                        predicate.Or(
                                predicate.GenerationChangedPredicate{},
-                               predicate.NewPredicateFuncs(func(obj 
client.Object) bool {
-                                       _, ok := obj.(*corev1.Secret)
-                                       return ok
-                               }),
+                               predicate.AnnotationChangedPredicate{},
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
                        ),
                ).
-               Watches(&networkingv1.IngressClass{},
+               Watches(
+                       &networkingv1.IngressClass{},
                        
handler.EnqueueRequestsFromMapFunc(r.listApisixRouteForIngressClass),
                        builder.WithPredicates(
                                
predicate.NewPredicateFuncs(matchesIngressController),
diff --git a/internal/controller/apisixtls_controller.go 
b/internal/controller/apisixtls_controller.go
index 3d762a3a..020aebcd 100644
--- a/internal/controller/apisixtls_controller.go
+++ b/internal/controller/apisixtls_controller.go
@@ -65,6 +65,7 @@ func (r *ApisixTlsReconciler) SetupWithManager(mgr 
ctrl.Manager) error {
                        predicate.Or(
                                predicate.GenerationChangedPredicate{},
                                predicate.AnnotationChangedPredicate{},
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
                        ),
                ).
                Watches(
diff --git a/internal/controller/consumer_controller.go 
b/internal/controller/consumer_controller.go
index 732c3f77..0484680c 100644
--- a/internal/controller/consumer_controller.go
+++ b/internal/controller/consumer_controller.go
@@ -65,10 +65,7 @@ func (r *ConsumerReconciler) SetupWithManager(mgr 
ctrl.Manager) error {
                WithEventFilter(
                        predicate.Or(
                                predicate.GenerationChangedPredicate{},
-                               predicate.NewPredicateFuncs(func(obj 
client.Object) bool {
-                                       _, ok := obj.(*corev1.Secret)
-                                       return ok
-                               }),
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
                        ),
                ).
                Watches(&gatewayv1.Gateway{},
diff --git a/internal/controller/gateway_controller.go 
b/internal/controller/gateway_controller.go
index 8040d980..31a64824 100644
--- a/internal/controller/gateway_controller.go
+++ b/internal/controller/gateway_controller.go
@@ -68,10 +68,7 @@ func (r *GatewayReconciler) SetupWithManager(mgr 
ctrl.Manager) error {
                WithEventFilter(
                        predicate.Or(
                                predicate.GenerationChangedPredicate{},
-                               predicate.NewPredicateFuncs(func(obj 
client.Object) bool {
-                                       _, ok := obj.(*corev1.Secret)
-                                       return ok
-                               }),
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
                        ),
                ).
                Watches(
diff --git a/internal/controller/gatewayclass_congroller.go 
b/internal/controller/gatewayclass_controller.go
similarity index 100%
rename from internal/controller/gatewayclass_congroller.go
rename to internal/controller/gatewayclass_controller.go
diff --git a/internal/controller/gatewayproxy_controller.go 
b/internal/controller/gatewayproxy_controller.go
index d1a4b803..43ba32f7 100644
--- a/internal/controller/gatewayproxy_controller.go
+++ b/internal/controller/gatewayproxy_controller.go
@@ -30,6 +30,7 @@ import (
        ctrl "sigs.k8s.io/controller-runtime"
        "sigs.k8s.io/controller-runtime/pkg/client"
        "sigs.k8s.io/controller-runtime/pkg/handler"
+       "sigs.k8s.io/controller-runtime/pkg/predicate"
        "sigs.k8s.io/controller-runtime/pkg/reconcile"
        gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
 
@@ -51,6 +52,12 @@ type GatewayProxyController struct {
 func (r *GatewayProxyController) SetupWithManager(mrg ctrl.Manager) error {
        return ctrl.NewControllerManagedBy(mrg).
                For(&v1alpha1.GatewayProxy{}).
+               WithEventFilter(
+                       predicate.Or(
+                               predicate.GenerationChangedPredicate{},
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
+                       ),
+               ).
                Watches(&corev1.Service{},
                        
handler.EnqueueRequestsFromMapFunc(r.listGatewayProxiesForProviderService),
                ).
diff --git a/internal/controller/ingress_controller.go 
b/internal/controller/ingress_controller.go
index c4df1226..001a9f9b 100644
--- a/internal/controller/ingress_controller.go
+++ b/internal/controller/ingress_controller.go
@@ -75,6 +75,7 @@ func (r *IngressReconciler) SetupWithManager(mgr 
ctrl.Manager) error {
                        predicate.Or(
                                predicate.GenerationChangedPredicate{},
                                predicate.AnnotationChangedPredicate{},
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
                        ),
                ).
                Watches(
diff --git a/internal/controller/ingressclass_controller.go 
b/internal/controller/ingressclass_controller.go
index 0d71bd54..f653dbbd 100644
--- a/internal/controller/ingressclass_controller.go
+++ b/internal/controller/ingressclass_controller.go
@@ -62,10 +62,8 @@ func (r *IngressClassReconciler) SetupWithManager(mgr 
ctrl.Manager) error {
                WithEventFilter(
                        predicate.Or(
                                predicate.GenerationChangedPredicate{},
-                               predicate.NewPredicateFuncs(func(obj 
client.Object) bool {
-                                       _, ok := obj.(*corev1.Secret)
-                                       return ok
-                               }),
+                               predicate.AnnotationChangedPredicate{},
+                               
predicate.NewPredicateFuncs(TypePredicate[*corev1.Secret]()),
                        ),
                ).
                Watches(
diff --git a/internal/controller/utils.go b/internal/controller/utils.go
index d1049046..45cbf12c 100644
--- a/internal/controller/utils.go
+++ b/internal/controller/utils.go
@@ -1471,3 +1471,10 @@ func addProviderEndpointsToTranslateContext(tctx 
*provider.TranslateContext, c c
 
        return nil
 }
+
+func TypePredicate[T client.Object]() func(obj client.Object) bool {
+       return func(obj client.Object) bool {
+               _, ok := obj.(T)
+               return ok
+       }
+}

Reply via email to