Skip to content

Commit 2b66451

Browse files
authored
fix labels not cloned bug (#804)
Signed-off-by: Nir Rozenbaum <[email protected]>
1 parent d212757 commit 2b66451

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

pkg/epp/backend/metrics/pod_metrics.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,18 +64,22 @@ func (pm *podMetrics) GetMetrics() *Metrics {
6464
return pm.metrics.Load()
6565
}
6666

67-
func (pm *podMetrics) UpdatePod(in *corev1.Pod) {
68-
pm.pod.Store(toInternalPod(in))
67+
func (pm *podMetrics) UpdatePod(pod *corev1.Pod) {
68+
pm.pod.Store(toInternalPod(pod))
6969
}
7070

71-
func toInternalPod(in *corev1.Pod) *backend.Pod {
71+
func toInternalPod(pod *corev1.Pod) *backend.Pod {
72+
labels := make(map[string]string, len(pod.GetLabels()))
73+
for key, value := range pod.GetLabels() {
74+
labels[key] = value
75+
}
7276
return &backend.Pod{
7377
NamespacedName: types.NamespacedName{
74-
Name: in.Name,
75-
Namespace: in.Namespace,
78+
Name: pod.Name,
79+
Namespace: pod.Namespace,
7680
},
77-
Address: in.Status.PodIP,
78-
Labels: in.Labels,
81+
Address: pod.Status.PodIP,
82+
Labels: labels,
7983
}
8084
}
8185

pkg/epp/backend/pod.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,16 @@ func (p *Pod) Clone() *Pod {
3636
if p == nil {
3737
return nil
3838
}
39+
clonedLabels := make(map[string]string, len(p.Labels))
40+
for key, value := range p.Labels {
41+
clonedLabels[key] = value
42+
}
3943
return &Pod{
4044
NamespacedName: types.NamespacedName{
4145
Name: p.NamespacedName.Name,
4246
Namespace: p.NamespacedName.Namespace,
4347
},
4448
Address: p.Address,
45-
Labels: p.Labels,
49+
Labels: clonedLabels,
4650
}
4751
}

pkg/epp/scheduling/scheduler_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ func TestSchedule(t *testing.T) {
9696
wantRes: &types.Result{
9797
TargetPod: &types.ScoredPod{
9898
Pod: &types.PodMetrics{
99-
Pod: &backend.Pod{NamespacedName: k8stypes.NamespacedName{Name: "pod2"}},
99+
Pod: &backend.Pod{NamespacedName: k8stypes.NamespacedName{Name: "pod2"}, Labels: make(map[string]string)},
100100
Metrics: &backendmetrics.Metrics{
101101
WaitingQueueSize: 3,
102102
KVCacheUsagePercent: 0.1,
@@ -159,7 +159,7 @@ func TestSchedule(t *testing.T) {
159159
wantRes: &types.Result{
160160
TargetPod: &types.ScoredPod{
161161
Pod: &types.PodMetrics{
162-
Pod: &backend.Pod{NamespacedName: k8stypes.NamespacedName{Name: "pod1"}},
162+
Pod: &backend.Pod{NamespacedName: k8stypes.NamespacedName{Name: "pod1"}, Labels: make(map[string]string)},
163163
Metrics: &backendmetrics.Metrics{
164164
WaitingQueueSize: 0,
165165
KVCacheUsagePercent: 0.2,
@@ -370,7 +370,7 @@ func TestSchedulePlugins(t *testing.T) {
370370

371371
// Validate output
372372
wantPod := &types.PodMetrics{
373-
Pod: &backend.Pod{NamespacedName: test.wantTargetPod},
373+
Pod: &backend.Pod{NamespacedName: test.wantTargetPod, Labels: make(map[string]string)},
374374
}
375375
wantRes := &types.Result{TargetPod: wantPod}
376376
if diff := cmp.Diff(wantRes, got); diff != "" {

0 commit comments

Comments
 (0)