diff --git a/support/util/util.go b/support/util/util.go index 20ba8b2a010..5f3d5e3376a 100644 --- a/support/util/util.go +++ b/support/util/util.go @@ -251,6 +251,7 @@ func ConvertOpenShiftImageRegistryOverridesToCommandLineFlag(registryOverrides m for _, registrySource := range sortedRegistrySources { registryReplacements := registryOverrides[registrySource] + sort.Strings(registryReplacements) for _, registryReplacement := range registryReplacements { commandLineFlagArray = append(commandLineFlagArray, fmt.Sprintf("%s=%s", registrySource, registryReplacement)) } diff --git a/support/util/util_test.go b/support/util/util_test.go index 102e29e8733..da77760dd5f 100644 --- a/support/util/util_test.go +++ b/support/util/util_test.go @@ -142,6 +142,21 @@ func TestConvertOpenShiftImageRegistryOverridesToCommandLineFlag(t *testing.T) { }, expectedFlag: "registry1=mirror1.1,registry1=mirror1.2,registry1=mirror1.3,registry2=mirror2.1,registry2=mirror2.2,registry3=mirror3.1", }, + { + name: "When mirrors are in non-alphabetical order, it should sort them deterministically", + registryOverrides: map[string][]string{ + "cp.icr.io/cp": { + "mirror-c.example.com", + "mirror-a.example.com", + "mirror-b.example.com", + }, + "icr.io/cpopen": { + "mirror-z.example.com", + "mirror-x.example.com", + }, + }, + expectedFlag: "cp.icr.io/cp=mirror-a.example.com,cp.icr.io/cp=mirror-b.example.com,cp.icr.io/cp=mirror-c.example.com,icr.io/cpopen=mirror-x.example.com,icr.io/cpopen=mirror-z.example.com", + }, } t.Parallel()