Skip to content

Commit 5a65e9f

Browse files
authored
Rename PodInfo struct to EndpointMetadata to better reflect its purpose (#1866)
* Renamed PodInfo EndpointMetadata Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Non test code updates due to PodInfo rename Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Test updates due to PodInfo rename Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Updated new code with new struct names Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Changed PodInfo to EndpointMetadata in comments and test function names Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Updates from review comments Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Updated code from rebase Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Make messages and variable names somewhat more consistent Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Rebase correction that was missed Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> * Rebase corrections due to other changes Signed-off-by: Shmuel Kallner <kallner@il.ibm.com> --------- Signed-off-by: Shmuel Kallner <kallner@il.ibm.com>
1 parent ca1a249 commit 5a65e9f

27 files changed

+139
-140
lines changed

cmd/epp/runner/runner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ func makePodListFunc(ds datastore.Datastore) func() []types.NamespacedName {
489489
names := make([]types.NamespacedName, 0, len(pods))
490490

491491
for _, p := range pods {
492-
names = append(names, p.GetPod().NamespacedName)
492+
names = append(names, p.GetMetadata().NamespacedName)
493493
}
494494
return names
495495
}

pkg/epp/backend/metrics/fake.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,19 @@ type FakePodMetrics struct {
3838
}
3939

4040
func (fpm *FakePodMetrics) String() string {
41-
return fmt.Sprintf("Pod: %v; Metrics: %v", fpm.GetPod(), fpm.GetMetrics())
41+
return fmt.Sprintf("Metadata: %v; Metrics: %v", fpm.GetMetadata(), fpm.GetMetrics())
4242
}
4343

44-
func (fpm *FakePodMetrics) GetPod() *backend.Pod {
44+
func (fpm *FakePodMetrics) GetMetadata() *backend.Pod {
4545
return fpm.Pod
4646
}
4747

4848
func (fpm *FakePodMetrics) GetMetrics() *MetricsState {
4949
return fpm.Metrics
5050
}
5151

52-
func (fpm *FakePodMetrics) UpdatePod(pod *datalayer.PodInfo) {
53-
fpm.Pod = pod
52+
func (fpm *FakePodMetrics) UpdateMetadata(metadata *datalayer.EndpointMetadata) {
53+
fpm.Pod = metadata
5454
}
5555
func (fpm *FakePodMetrics) GetAttributes() *datalayer.Attributes {
5656
return fpm.Attributes

pkg/epp/backend/metrics/pod_metrics.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525

2626
"github.com/go-logr/logr"
2727

28-
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend"
2928
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
3029
logutil "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/util/logging"
3130
)
@@ -35,7 +34,7 @@ const (
3534
)
3635

3736
type podMetrics struct {
38-
pod atomic.Pointer[backend.Pod]
37+
metadata atomic.Pointer[datalayer.EndpointMetadata]
3938
metrics atomic.Pointer[MetricsState]
4039
pmc PodMetricsClient
4140
ds datalayer.PoolInfo
@@ -49,31 +48,31 @@ type podMetrics struct {
4948
}
5049

5150
type PodMetricsClient interface {
52-
FetchMetrics(ctx context.Context, pod *backend.Pod, existing *MetricsState) (*MetricsState, error)
51+
FetchMetrics(ctx context.Context, pod *datalayer.EndpointMetadata, existing *MetricsState) (*MetricsState, error)
5352
}
5453

5554
func (pm *podMetrics) String() string {
56-
return fmt.Sprintf("Pod: %v; Metrics: %v", pm.GetPod(), pm.GetMetrics())
55+
return fmt.Sprintf("Metadata: %v; Metrics: %v", pm.GetMetadata(), pm.GetMetrics())
5756
}
5857

59-
func (pm *podMetrics) GetPod() *backend.Pod {
60-
return pm.pod.Load()
58+
func (pm *podMetrics) GetMetadata() *datalayer.EndpointMetadata {
59+
return pm.metadata.Load()
6160
}
6261

6362
func (pm *podMetrics) GetMetrics() *MetricsState {
6463
return pm.metrics.Load()
6564
}
6665

67-
func (pm *podMetrics) UpdatePod(pod *datalayer.PodInfo) {
68-
pm.pod.Store(pod)
66+
func (pm *podMetrics) UpdateMetadata(pod *datalayer.EndpointMetadata) {
67+
pm.metadata.Store(pod)
6968
}
7069

7170
// start starts a goroutine exactly once to periodically update metrics. The goroutine will be
7271
// stopped either when stop() is called, or the given ctx is cancelled.
7372
func (pm *podMetrics) startRefreshLoop(ctx context.Context) {
7473
pm.startOnce.Do(func() {
7574
go func() {
76-
pm.logger.V(logutil.DEFAULT).Info("Starting refresher", "pod", pm.GetPod())
75+
pm.logger.V(logutil.DEFAULT).Info("Starting refresher", "metadata", pm.GetMetadata())
7776
ticker := time.NewTicker(pm.interval)
7877
defer ticker.Stop()
7978
for {
@@ -84,7 +83,7 @@ func (pm *podMetrics) startRefreshLoop(ctx context.Context) {
8483
return
8584
case <-ticker.C: // refresh metrics periodically
8685
if err := pm.refreshMetrics(); err != nil {
87-
pm.logger.V(logutil.TRACE).Error(err, "Failed to refresh metrics", "pod", pm.GetPod())
86+
pm.logger.V(logutil.TRACE).Error(err, "Failed to refresh metrics", "metadata", pm.GetMetadata())
8887
}
8988
}
9089
}
@@ -95,7 +94,7 @@ func (pm *podMetrics) startRefreshLoop(ctx context.Context) {
9594
func (pm *podMetrics) refreshMetrics() error {
9695
ctx, cancel := context.WithTimeout(context.Background(), fetchMetricsTimeout)
9796
defer cancel()
98-
updated, err := pm.pmc.FetchMetrics(ctx, pm.GetPod(), pm.GetMetrics())
97+
updated, err := pm.pmc.FetchMetrics(ctx, pm.GetMetadata(), pm.GetMetrics())
9998
if err != nil {
10099
pm.logger.V(logutil.TRACE).Info("Failed to refreshed metrics:", "err", err)
101100
}
@@ -115,7 +114,7 @@ func (pm *podMetrics) refreshMetrics() error {
115114
}
116115

117116
func (pm *podMetrics) stopRefreshLoop() {
118-
pm.logger.V(logutil.DEFAULT).Info("Stopping refresher", "pod", pm.GetPod())
117+
pm.logger.V(logutil.DEFAULT).Info("Stopping refresher", "metadata", pm.GetMetadata())
119118
pm.stopOnce.Do(func() {
120119
close(pm.done)
121120
})

pkg/epp/backend/metrics/pod_metrics_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929
)
3030

3131
var (
32-
pod1Info = &datalayer.PodInfo{
32+
pod1Info = &datalayer.EndpointMetadata{
3333
NamespacedName: types.NamespacedName{
3434
Name: "pod1-rank-0",
3535
Namespace: "default",

pkg/epp/backend/metrics/types.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,17 @@ type PodMetricsFactory struct {
4848
refreshMetricsInterval time.Duration
4949
}
5050

51-
func (f *PodMetricsFactory) NewEndpoint(parentCtx context.Context, pod *datalayer.PodInfo, ds datalayer.PoolInfo) PodMetrics {
51+
func (f *PodMetricsFactory) NewEndpoint(parentCtx context.Context, metadata *datalayer.EndpointMetadata, ds datalayer.PoolInfo) datalayer.Endpoint {
5252
pm := &podMetrics{
5353
pmc: f.pmc,
5454
ds: ds,
5555
interval: f.refreshMetricsInterval,
5656
startOnce: sync.Once{},
5757
stopOnce: sync.Once{},
5858
done: make(chan struct{}),
59-
logger: log.FromContext(parentCtx).WithValues("pod", pod.NamespacedName),
59+
logger: log.FromContext(parentCtx).WithValues("endpoint", metadata.NamespacedName),
6060
}
61-
pm.pod.Store(pod)
61+
pm.metadata.Store(metadata)
6262
pm.metrics.Store(NewMetricsState())
6363

6464
pm.startRefreshLoop(parentCtx)

pkg/epp/backend/pod.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ import (
2020
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datalayer"
2121
)
2222

23-
type Pod = datalayer.PodInfo
23+
type Pod = datalayer.EndpointMetadata

pkg/epp/controller/inferencepool_reconciler_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ func TestInferencePoolReconciler(t *testing.T) {
128128
t.Errorf("Unexpected InferencePool reconcile error: %v", err)
129129
}
130130
endpointPool1 := pool.InferencePoolToEndpointPool(pool1)
131-
if diff := diffStore(ds, diffStoreParams{wantPool: endpointPool1, wantPods: []string{"pod1-rank-0", "pod2-rank-0"}}); diff != "" {
131+
if diff := diffStore(ds, diffStoreParams{wantPool: endpointPool1, wantEndpoints: []string{"pod1-rank-0", "pod2-rank-0"}}); diff != "" {
132132
t.Errorf("Unexpected diff (+got/-want): %s", diff)
133133
}
134134

@@ -146,7 +146,7 @@ func TestInferencePoolReconciler(t *testing.T) {
146146
t.Errorf("Unexpected InferencePool reconcile error: %v", err)
147147
}
148148
newEndpointPool1 := pool.InferencePoolToEndpointPool(newPool1)
149-
if diff := diffStore(ds, diffStoreParams{wantPool: newEndpointPool1, wantPods: []string{"pod5-rank-0"}}); diff != "" {
149+
if diff := diffStore(ds, diffStoreParams{wantPool: newEndpointPool1, wantEndpoints: []string{"pod5-rank-0"}}); diff != "" {
150150
t.Errorf("Unexpected diff (+got/-want): %s", diff)
151151
}
152152

@@ -162,7 +162,7 @@ func TestInferencePoolReconciler(t *testing.T) {
162162
t.Errorf("Unexpected InferencePool reconcile error: %v", err)
163163
}
164164
newEndpointPool1 = pool.InferencePoolToEndpointPool(newPool1)
165-
if diff := diffStore(ds, diffStoreParams{wantPool: newEndpointPool1, wantPods: []string{"pod5-rank-0"}}); diff != "" {
165+
if diff := diffStore(ds, diffStoreParams{wantPool: newEndpointPool1, wantEndpoints: []string{"pod5-rank-0"}}); diff != "" {
166166
t.Errorf("Unexpected diff (+got/-want): %s", diff)
167167
}
168168

@@ -176,15 +176,15 @@ func TestInferencePoolReconciler(t *testing.T) {
176176
if _, err := inferencePoolReconciler.Reconcile(ctx, req); err != nil {
177177
t.Errorf("Unexpected InferencePool reconcile error: %v", err)
178178
}
179-
if diff := diffStore(ds, diffStoreParams{wantPods: []string{}}); diff != "" {
179+
if diff := diffStore(ds, diffStoreParams{wantEndpoints: []string{}}); diff != "" {
180180
t.Errorf("Unexpected diff (+got/-want): %s", diff)
181181
}
182182
}
183183
}
184184

185185
type diffStoreParams struct {
186186
wantPool *datalayer.EndpointPool
187-
wantPods []string
187+
wantEndpoints []string
188188
wantObjectives []*v1alpha2.InferenceObjective
189189
}
190190

@@ -195,15 +195,15 @@ func diffStore(store datastore.Datastore, params diffStoreParams) string {
195195
}
196196

197197
// Default wantPods if not set because PodGetAll returns an empty slice when empty.
198-
if params.wantPods == nil {
199-
params.wantPods = []string{}
198+
if params.wantEndpoints == nil {
199+
params.wantEndpoints = []string{}
200200
}
201-
gotPods := []string{}
202-
for _, pm := range store.PodList(datastore.AllPodsPredicate) {
203-
gotPods = append(gotPods, pm.GetPod().NamespacedName.Name)
201+
gotEndpoints := []string{}
202+
for _, em := range store.PodList(datastore.AllPodsPredicate) {
203+
gotEndpoints = append(gotEndpoints, em.GetMetadata().NamespacedName.Name)
204204
}
205-
if diff := cmp.Diff(params.wantPods, gotPods, cmpopts.SortSlices(func(a, b string) bool { return a < b })); diff != "" {
206-
return "pods:" + diff
205+
if diff := cmp.Diff(params.wantEndpoints, gotEndpoints, cmpopts.SortSlices(func(a, b string) bool { return a < b })); diff != "" {
206+
return "endpoints:" + diff
207207
}
208208

209209
// Default wantModels if not set because ModelGetAll returns an empty slice when empty.
@@ -355,8 +355,8 @@ func xDiffStore(store datastore.Datastore, params xDiffStoreParams) string {
355355
params.wantPods = []string{}
356356
}
357357
gotPods := []string{}
358-
for _, pm := range store.PodList(datastore.AllPodsPredicate) {
359-
gotPods = append(gotPods, pm.GetPod().NamespacedName.Name)
358+
for _, em := range store.PodList(datastore.AllPodsPredicate) {
359+
gotPods = append(gotPods, em.GetMetadata().NamespacedName.Name)
360360
}
361361
if diff := cmp.Diff(params.wantPods, gotPods, cmpopts.SortSlices(func(a, b string) bool { return a < b })); diff != "" {
362362
return "pods:" + diff

pkg/epp/controller/pod_reconciler_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ func TestPodReconciler(t *testing.T) {
219219

220220
var gotPods []*corev1.Pod
221221
for _, pm := range store.PodList(datastore.AllPodsPredicate) {
222-
pod := &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: pm.GetPod().PodName, Namespace: pm.GetPod().NamespacedName.Namespace}, Status: corev1.PodStatus{PodIP: pm.GetPod().GetIPAddress()}}
222+
pod := &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: pm.GetMetadata().PodName, Namespace: pm.GetMetadata().NamespacedName.Namespace}, Status: corev1.PodStatus{PodIP: pm.GetMetadata().GetIPAddress()}}
223223
gotPods = append(gotPods, pod)
224224
}
225225
if !cmp.Equal(gotPods, test.wantPods, cmpopts.SortSlices(func(a, b *corev1.Pod) bool { return a.Name < b.Name })) {

pkg/epp/datalayer/collector.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func (c *Collector) Start(ctx context.Context, ticker Ticker, ep Endpoint, sourc
8888
started := false
8989

9090
c.startOnce.Do(func() {
91-
logger := log.FromContext(ctx).WithValues("endpoint", ep.GetPod().GetIPAddress())
91+
logger := log.FromContext(ctx).WithValues("endpoint", ep.GetMetadata().GetIPAddress())
9292
c.ctx, c.cancel = context.WithCancel(ctx)
9393
started = true
9494
ready = make(chan struct{})

pkg/epp/datalayer/collector_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,14 @@ import (
3232
// --- Test Stubs ---
3333

3434
func defaultEndpoint() Endpoint {
35-
pod := &PodInfo{
35+
meta := &EndpointMetadata{
3636
NamespacedName: types.NamespacedName{
3737
Name: "pod-name",
3838
Namespace: "default",
3939
},
4040
Address: "1.2.3.4:5678",
4141
}
42-
ms := NewEndpoint(pod, nil)
42+
ms := NewEndpoint(meta, nil)
4343
return ms
4444
}
4545

0 commit comments

Comments
 (0)