diff --git a/cmd/kubeadm/app/util/arguments.go b/cmd/kubeadm/app/util/arguments.go index 619aba2eb4..afba856c42 100644 --- a/cmd/kubeadm/app/util/arguments.go +++ b/cmd/kubeadm/app/util/arguments.go @@ -30,26 +30,26 @@ import ( func BuildArgumentListFromMap(baseArguments map[string]string, overrideArguments map[string]string) []string { var command []string var keys []string - for k := range overrideArguments { + + argsMap := make(map[string]string) + + for k, v := range baseArguments { + argsMap[k] = v + } + + for k, v := range overrideArguments { + argsMap[k] = v + } + + for k := range argsMap { keys = append(keys, k) } + sort.Strings(keys) for _, k := range keys { - v := overrideArguments[k] - // values of "" are allowed as well - command = append(command, fmt.Sprintf("--%s=%s", k, v)) - } - keys = []string{} - for k := range baseArguments { - keys = append(keys, k) - } - sort.Strings(keys) - for _, k := range keys { - v := baseArguments[k] - if _, overrideExists := overrideArguments[k]; !overrideExists { - command = append(command, fmt.Sprintf("--%s=%s", k, v)) - } + command = append(command, fmt.Sprintf("--%s=%s", k, argsMap[k])) } + return command } diff --git a/cmd/kubeadm/app/util/arguments_test.go b/cmd/kubeadm/app/util/arguments_test.go index bdfd5e414f..fd8c724983 100644 --- a/cmd/kubeadm/app/util/arguments_test.go +++ b/cmd/kubeadm/app/util/arguments_test.go @@ -85,9 +85,9 @@ func TestBuildArgumentListFromMap(t *testing.T) { }, expected: []string{ "--admission-control=NamespaceLifecycle,LimitRanger", - "--something-that-allows-empty-string=", "--allow-privileged=true", "--insecure-bind-address=127.0.0.1", + "--something-that-allows-empty-string=", }, }, }