Skip to content

Commit 6127cbf

Browse files
committed
Add ordering to inferenceMaps
1 parent abe9a7b commit 6127cbf

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

internal/controller/nginx/config/maps.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package config
22

33
import (
44
"fmt"
5+
"sort"
56
"strings"
67
gotemplate "text/template"
78

@@ -245,9 +246,17 @@ func buildInferenceMaps(groups []dataplane.BackendGroup) []shared.Map {
245246
}
246247
}
247248

249+
// Sort the map keys to ensure deterministic ordering
250+
mapKeys := make([]string, 0, len(uniqueMaps))
251+
for key := range uniqueMaps {
252+
mapKeys = append(mapKeys, key)
253+
}
254+
sort.Strings(mapKeys)
255+
256+
// Build the result slice in sorted order
248257
inferenceMaps := make([]shared.Map, 0, len(uniqueMaps))
249-
for _, inferenceMap := range uniqueMaps {
250-
inferenceMaps = append(inferenceMaps, inferenceMap)
258+
for _, key := range mapKeys {
259+
inferenceMaps = append(inferenceMaps, uniqueMaps[key])
251260
}
252261

253262
return inferenceMaps

internal/controller/nginx/config/maps_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -408,25 +408,25 @@ func TestBuildInferenceMaps(t *testing.T) {
408408
expectedMaps int
409409
}{
410410
{
411-
name: "unique backends with different failure modes",
411+
name: "unique backends with different failure modes, result is ordered by upstream name",
412412
backendGroups: []dataplane.BackendGroup{
413413
{
414414
Backends: []dataplane.Backend{
415415
{
416-
UpstreamName: "upstream1",
416+
UpstreamName: "upstream2",
417417
EndpointPickerConfig: &dataplane.EndpointPickerConfig{
418418
NsName: "default",
419419
EndpointPickerRef: &inference.EndpointPickerRef{
420-
FailureMode: inference.EndpointPickerFailClose,
420+
FailureMode: inference.EndpointPickerFailOpen,
421421
},
422422
},
423423
},
424424
{
425-
UpstreamName: "upstream2",
425+
UpstreamName: "upstream1",
426426
EndpointPickerConfig: &dataplane.EndpointPickerConfig{
427427
NsName: "default",
428428
EndpointPickerRef: &inference.EndpointPickerRef{
429-
FailureMode: inference.EndpointPickerFailOpen,
429+
FailureMode: inference.EndpointPickerFailClose,
430430
},
431431
},
432432
},

0 commit comments

Comments
 (0)