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 <[email protected]>
AuthorDate: Fri Jul 4 13:22:11 2025 +0800
fix: add more event filter across controllers (#2449)
Signed-off-by: ashing <[email protected]>
---
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
+ }
+}