@@ -26,7 +26,9 @@ import (
26
26
"k8s.io/client-go/tools/record"
27
27
ctrl "sigs.k8s.io/controller-runtime"
28
28
"sigs.k8s.io/controller-runtime/pkg/client"
29
+ "sigs.k8s.io/controller-runtime/pkg/event"
29
30
"sigs.k8s.io/controller-runtime/pkg/log"
31
+ "sigs.k8s.io/controller-runtime/pkg/predicate"
30
32
"sigs.k8s.io/gateway-api-inference-extension/api/v1alpha2"
31
33
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
32
34
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
@@ -41,10 +43,6 @@ type InferenceModelReconciler struct {
41
43
}
42
44
43
45
func (c * InferenceModelReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
44
- if req .Namespace != c .PoolNamespacedName .Namespace {
45
- return ctrl.Result {}, nil
46
- }
47
-
48
46
logger := log .FromContext (ctx )
49
47
loggerDefault := logger .V (logutil .DEFAULT )
50
48
loggerDefault .Info ("Reconciling InferenceModel" , "name" , req .NamespacedName )
@@ -85,5 +83,17 @@ func (c *InferenceModelReconciler) updateDatastore(logger logr.Logger, infModel
85
83
func (c * InferenceModelReconciler ) SetupWithManager (mgr ctrl.Manager ) error {
86
84
return ctrl .NewControllerManagedBy (mgr ).
87
85
For (& v1alpha2.InferenceModel {}).
86
+ WithEventFilter (predicate.Funcs {
87
+ CreateFunc : func (e event.CreateEvent ) bool { return c .eventPredicate (e .Object .(* v1alpha2.InferenceModel )) },
88
+ UpdateFunc : func (e event.UpdateEvent ) bool {
89
+ return c .eventPredicate (e .ObjectOld .(* v1alpha2.InferenceModel )) || c .eventPredicate (e .ObjectNew .(* v1alpha2.InferenceModel ))
90
+ },
91
+ DeleteFunc : func (e event.DeleteEvent ) bool { return c .eventPredicate (e .Object .(* v1alpha2.InferenceModel )) },
92
+ GenericFunc : func (e event.GenericEvent ) bool { return c .eventPredicate (e .Object .(* v1alpha2.InferenceModel )) },
93
+ }).
88
94
Complete (c )
89
95
}
96
+
97
+ func (c * InferenceModelReconciler ) eventPredicate (infModel * v1alpha2.InferenceModel ) bool {
98
+ return (infModel .Spec .PoolRef .Name == c .PoolNamespacedName .Name ) && (infModel .GetNamespace () == c .PoolNamespacedName .Namespace )
99
+ }
0 commit comments