You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by al...@apache.org on 2025/07/07 01:57:46 UTC

(apisix-ingress-controller) 03/03: fix: add more event filter across controllers (#2449)

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

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

commit 18f03ea661205b2da69170d8a40470fe791a67c9
Author: Ashing Zheng <ax...@gmail.com>
AuthorDate: Fri Jul 4 13:22:11 2025 +0800

    fix: add more event filter across controllers (#2449)
    
    Signed-off-by: ashing <ax...@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
+	}
+}