diff --git a/cmd/kubeadm/app/util/env.go b/cmd/kubeadm/app/util/env.go index e0f984798fe..d34a9a4ce2a 100644 --- a/cmd/kubeadm/app/util/env.go +++ b/cmd/kubeadm/app/util/env.go @@ -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 } diff --git a/cmd/kubeadm/app/util/env_test.go b/cmd/kubeadm/app/util/env_test.go index 0f788528ac3..7442edec49e 100644 --- a/cmd/kubeadm/app/util/env_test.go +++ b/cmd/kubeadm/app/util/env_test.go @@ -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) } })