@@ -22,32 +22,32 @@ import (
22
22
"github.com/go-logr/logr"
23
23
corev1 "k8s.io/api/core/v1"
24
24
apierrors "k8s.io/apimachinery/pkg/api/errors"
25
- "k8s.io/apimachinery/pkg/runtime"
26
25
"k8s.io/apimachinery/pkg/types"
27
26
"k8s.io/client-go/tools/record"
28
27
ctrl "sigs.k8s.io/controller-runtime"
29
28
"sigs.k8s.io/controller-runtime/pkg/client"
30
29
"sigs.k8s.io/controller-runtime/pkg/log"
30
+ "sigs.k8s.io/controller-runtime/pkg/predicate"
31
31
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
32
32
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
33
33
)
34
34
35
35
type PodReconciler struct {
36
36
client.Client
37
37
Datastore datastore.Datastore
38
- Scheme * runtime.Scheme
38
+ // namespace of the InferencePool
39
+ // we donot support cross namespace pod selection
40
+ Namespace string
39
41
Record record.EventRecorder
40
42
}
41
43
42
44
func (c * PodReconciler ) Reconcile (ctx context.Context , req ctrl.Request ) (ctrl.Result , error ) {
43
45
logger := log .FromContext (ctx )
44
- inferencePool , err := c .Datastore .PoolGet ()
46
+ _ , err := c .Datastore .PoolGet ()
45
47
if err != nil {
46
48
logger .V (logutil .TRACE ).Info ("Skipping reconciling Pod because the InferencePool is not available yet" , "error" , err )
47
49
// When the inferencePool is initialized it lists the appropriate pods and populates the datastore, so no need to requeue.
48
50
return ctrl.Result {}, nil
49
- } else if inferencePool .Namespace != req .Namespace {
50
- return ctrl.Result {}, nil
51
51
}
52
52
53
53
logger .V (logutil .VERBOSE ).Info ("Pod being reconciled" , "name" , req .NamespacedName )
@@ -67,8 +67,12 @@ func (c *PodReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.R
67
67
}
68
68
69
69
func (c * PodReconciler ) SetupWithManager (mgr ctrl.Manager ) error {
70
+ // Filter specific inference pool
71
+ p := predicate .NewPredicateFuncs (func (object client.Object ) bool {
72
+ return object .GetNamespace () == c .Namespace
73
+ })
70
74
return ctrl .NewControllerManagedBy (mgr ).
71
- For (& corev1.Pod {}).
75
+ For (& corev1.Pod {}).WithEventFilter ( p ).
72
76
Complete (c )
73
77
}
74
78
0 commit comments