Skip to content

Commit 14ae49f

Browse files
MadhavJivrajanicourageJ
authored andcommitted
ext-proc: change Inference* APIs to use NamespacedName (#172)
Signed-off-by: Madhav Jivrajani <[email protected]>
1 parent 1ed2d8d commit 14ae49f

File tree

4 files changed

+35
-29
lines changed

4 files changed

+35
-29
lines changed

pkg/ext-proc/backend/inferencemodel_reconciler.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"inference.networking.x-k8s.io/gateway-api-inference-extension/api/v1alpha1"
77
"k8s.io/apimachinery/pkg/runtime"
8+
"k8s.io/apimachinery/pkg/types"
89
"k8s.io/client-go/tools/record"
910
"k8s.io/klog/v2"
1011
ctrl "sigs.k8s.io/controller-runtime"
@@ -13,15 +14,14 @@ import (
1314

1415
type InferenceModelReconciler struct {
1516
client.Client
16-
Scheme *runtime.Scheme
17-
Record record.EventRecorder
18-
Datastore *K8sDatastore
19-
PoolName string
20-
PoolNamespace string
17+
Scheme *runtime.Scheme
18+
Record record.EventRecorder
19+
Datastore *K8sDatastore
20+
PoolNamespacedName types.NamespacedName
2121
}
2222

2323
func (c *InferenceModelReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
24-
if req.Namespace != c.PoolNamespace {
24+
if req.Namespace != c.PoolNamespacedName.Namespace {
2525
return ctrl.Result{}, nil
2626
}
2727
klog.V(1).Info("reconciling InferenceModel", req.NamespacedName)
@@ -43,8 +43,8 @@ func (c *InferenceModelReconciler) SetupWithManager(mgr ctrl.Manager) error {
4343
}
4444

4545
func (c *InferenceModelReconciler) updateDatastore(infModel *v1alpha1.InferenceModel) {
46-
if infModel.Spec.PoolRef.Name == c.PoolName {
47-
klog.V(1).Infof("Incoming pool ref %v, server pool name: %v", infModel.Spec.PoolRef, c.PoolName)
46+
if infModel.Spec.PoolRef.Name == c.PoolNamespacedName.Name {
47+
klog.V(1).Infof("Incoming pool ref %v, server pool name: %v", infModel.Spec.PoolRef, c.PoolNamespacedName.Name)
4848
klog.V(1).Infof("Adding/Updating inference model: %v", infModel.Spec.ModelName)
4949
c.Datastore.InferenceModels.Store(infModel.Spec.ModelName, infModel)
5050
return

pkg/ext-proc/backend/inferencemodel_reconciler_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"inference.networking.x-k8s.io/gateway-api-inference-extension/api/v1alpha1"
88
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9+
"k8s.io/apimachinery/pkg/types"
910
)
1011

1112
var (
@@ -125,8 +126,8 @@ func TestUpdateDatastore_InferenceModelReconciler(t *testing.T) {
125126
for _, test := range tests {
126127
t.Run(test.name, func(t *testing.T) {
127128
InferenceModelReconciler := &InferenceModelReconciler{
128-
Datastore: test.datastore,
129-
PoolName: test.datastore.inferencePool.Name,
129+
Datastore: test.datastore,
130+
PoolNamespacedName: types.NamespacedName{Name: test.datastore.inferencePool.Name},
130131
}
131132
InferenceModelReconciler.updateDatastore(test.incomingService)
132133

pkg/ext-proc/backend/inferencepool_reconciler.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55

66
"inference.networking.x-k8s.io/gateway-api-inference-extension/api/v1alpha1"
77
"k8s.io/apimachinery/pkg/runtime"
8+
"k8s.io/apimachinery/pkg/types"
89
"k8s.io/client-go/tools/record"
910
"k8s.io/klog/v2"
1011
ctrl "sigs.k8s.io/controller-runtime"
@@ -16,16 +17,15 @@ import (
1617
// will have the proper controller that will create/manage objects on behalf of the server pool.
1718
type InferencePoolReconciler struct {
1819
client.Client
19-
Scheme *runtime.Scheme
20-
Record record.EventRecorder
21-
PoolName string
22-
PoolNamespace string
23-
Datastore *K8sDatastore
24-
Zone string
20+
Scheme *runtime.Scheme
21+
Record record.EventRecorder
22+
PoolNamespacedName types.NamespacedName
23+
Datastore *K8sDatastore
24+
Zone string
2525
}
2626

2727
func (c *InferencePoolReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
28-
if req.NamespacedName.Name != c.PoolName || req.NamespacedName.Namespace != c.PoolNamespace {
28+
if req.NamespacedName.Name != c.PoolNamespacedName.Name || req.NamespacedName.Namespace != c.PoolNamespacedName.Namespace {
2929
return ctrl.Result{}, nil
3030
}
3131
klog.V(1).Info("reconciling InferencePool", req.NamespacedName)

pkg/ext-proc/main.go

+17-12
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"inference.networking.x-k8s.io/llm-instance-gateway/pkg/ext-proc/metrics"
2828
"inference.networking.x-k8s.io/llm-instance-gateway/pkg/ext-proc/scheduling"
2929
"k8s.io/apimachinery/pkg/runtime"
30+
"k8s.io/apimachinery/pkg/types"
3031
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
3132
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
3233
klog "k8s.io/klog/v2"
@@ -124,23 +125,27 @@ func main() {
124125
}
125126

126127
if err := (&backend.InferencePoolReconciler{
127-
Datastore: datastore,
128-
Scheme: mgr.GetScheme(),
129-
Client: mgr.GetClient(),
130-
PoolName: *poolName,
131-
PoolNamespace: *poolNamespace,
132-
Record: mgr.GetEventRecorderFor("InferencePool"),
128+
Datastore: datastore,
129+
Scheme: mgr.GetScheme(),
130+
Client: mgr.GetClient(),
131+
PoolNamespacedName: types.NamespacedName{
132+
Name: *poolName,
133+
Namespace: *poolNamespace,
134+
},
135+
Record: mgr.GetEventRecorderFor("InferencePool"),
133136
}).SetupWithManager(mgr); err != nil {
134137
klog.Error(err, "Error setting up InferencePoolReconciler")
135138
}
136139

137140
if err := (&backend.InferenceModelReconciler{
138-
Datastore: datastore,
139-
Scheme: mgr.GetScheme(),
140-
Client: mgr.GetClient(),
141-
PoolName: *poolName,
142-
PoolNamespace: *poolNamespace,
143-
Record: mgr.GetEventRecorderFor("InferenceModel"),
141+
Datastore: datastore,
142+
Scheme: mgr.GetScheme(),
143+
Client: mgr.GetClient(),
144+
PoolNamespacedName: types.NamespacedName{
145+
Name: *poolName,
146+
Namespace: *poolNamespace,
147+
},
148+
Record: mgr.GetEventRecorderFor("InferenceModel"),
144149
}).SetupWithManager(mgr); err != nil {
145150
klog.Error(err, "Error setting up InferenceModelReconciler")
146151
}

0 commit comments

Comments
 (0)