mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-23 10:58:42 +00:00
kubeadm: sort the results of MergeKubeadmEnvVars
MergeKubeadmEnvVars use a map which results in non deterministic output in the end slice EnvVar objects. Before returning the slice, sort it by the Name field. Update the unit test to capture the sorting aspect.
This commit is contained in:
@@ -18,6 +18,7 @@ package util
|
||||
|
||||
import (
|
||||
"os"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
@@ -63,5 +64,8 @@ func MergeKubeadmEnvVars(envList ...[]kubeadmapi.EnvVar) []v1.EnvVar {
|
||||
for _, v := range m {
|
||||
merged = append(merged, v)
|
||||
}
|
||||
sort.Slice(merged, func(i, j int) bool {
|
||||
return merged[i].Name < merged[j].Name
|
||||
})
|
||||
return merged
|
||||
}
|
||||
|
@@ -20,8 +20,6 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
@@ -41,10 +39,10 @@ func TestMergeKubeadmEnvVars(t *testing.T) {
|
||||
name: "normal case without duplicated env",
|
||||
proxyEnv: []kubeadmapi.EnvVar{
|
||||
{
|
||||
EnvVar: v1.EnvVar{Name: "Foo1", Value: "Bar1"},
|
||||
EnvVar: v1.EnvVar{Name: "Foo2", Value: "Bar2"},
|
||||
},
|
||||
{
|
||||
EnvVar: v1.EnvVar{Name: "Foo2", Value: "Bar2"},
|
||||
EnvVar: v1.EnvVar{Name: "Foo1", Value: "Bar1"},
|
||||
},
|
||||
},
|
||||
extraEnv: []kubeadmapi.EnvVar{
|
||||
@@ -83,7 +81,7 @@ func TestMergeKubeadmEnvVars(t *testing.T) {
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
envs := MergeKubeadmEnvVars(test.proxyEnv, test.extraEnv)
|
||||
if !assert.ElementsMatch(t, envs, test.mergedEnv) {
|
||||
if !reflect.DeepEqual(envs, test.mergedEnv) {
|
||||
t.Errorf("expected env: %v, got: %v", test.mergedEnv, envs)
|
||||
}
|
||||
})
|
||||
|
Reference in New Issue
Block a user