mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 11:13:48 +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:
parent
ffbc494a4a
commit
a9f681d40a
@ -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)
|
||||
}
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user