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