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 + } +}