From b4e983069fb052c1c14f5200ea3538a892de895f Mon Sep 17 00:00:00 2001 From: Francesco Pantano Date: Fri, 3 Apr 2026 15:22:11 +0200 Subject: [PATCH] Ensure stable condition messages in ensureServiceExposed Convert placementEndpoints map iteration to deterministic order using slices.Sorted(maps.Keys(...)) to prevent potential condition message instability across reconcile loops. Related: OSPRH-28646 Co-Authored-By: Claude Signed-off-by: Francesco Pantano --- internal/controller/placementapi_controller.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/controller/placementapi_controller.go b/internal/controller/placementapi_controller.go index e4fe1990..26743f19 100644 --- a/internal/controller/placementapi_controller.go +++ b/internal/controller/placementapi_controller.go @@ -22,6 +22,7 @@ import ( "errors" "fmt" "maps" + "slices" "time" "k8s.io/apimachinery/pkg/fields" @@ -524,7 +525,8 @@ func (r *PlacementAPIReconciler) ensureServiceExposed( apiEndpoints := make(map[string]string) serviceLabels := getServiceLabels(instance) - for endpointType, data := range placementEndpoints { + for _, endpointType := range slices.Sorted(maps.Keys(placementEndpoints)) { + data := placementEndpoints[endpointType] endpointTypeStr := string(endpointType) endpointName := placement.ServiceName + "-" + endpointTypeStr