Ensure ControllerManagerExtraArgs take precedence over generated args

This commit is contained in:
Jason Stangroome 2018-03-29 14:02:10 +11:00
parent cc195d779a
commit 6fbf2da60b
3 changed files with 14 additions and 18 deletions

View File

@ -157,10 +157,6 @@ type Networking struct {
PodSubnet string PodSubnet string
// DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local". // DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
DNSDomain string DNSDomain string
// NodeCIDRMaskSize is the size of the Pod subnet allocated to each node. Only
// applies when PodSubnet is also specified. Defaults to "24" for IPv4 or a
// calculated subset of an IPv6 PodSubnet.
NodeCIDRMaskSize string
} }
// Etcd contains elements describing Etcd configuration. // Etcd contains elements describing Etcd configuration.

View File

@ -321,28 +321,27 @@ func getControllerManagerCommand(cfg *kubeadmapi.MasterConfiguration, k8sVersion
defaultArguments["cluster-signing-cert-file"] = "" defaultArguments["cluster-signing-cert-file"] = ""
} }
command := []string{"kube-controller-manager"}
command = append(command, kubeadmutil.BuildArgumentListFromMap(defaultArguments, cfg.ControllerManagerExtraArgs)...)
if cfg.CloudProvider != "" { if cfg.CloudProvider != "" {
command = append(command, "--cloud-provider="+cfg.CloudProvider) defaultArguments["cloud-provider"] = cfg.CloudProvider
// Only append the --cloud-config option if there's a such file // Only append the --cloud-config option if there's a such file
if _, err := os.Stat(DefaultCloudConfigPath); err == nil { if _, err := os.Stat(DefaultCloudConfigPath); err == nil {
command = append(command, "--cloud-config="+DefaultCloudConfigPath) defaultArguments["cloud-config"] = DefaultCloudConfigPath
} }
} }
// Let the controller-manager allocate Node CIDRs for the Pod network. // Let the controller-manager allocate Node CIDRs for the Pod network.
// Each node will get a subspace of the address CIDR provided with --pod-network-cidr. // Each node will get a subspace of the address CIDR provided with --pod-network-cidr.
if cfg.Networking.PodSubnet != "" { if cfg.Networking.PodSubnet != "" {
maskSize := cfg.Networking.NodeCIDRMaskSize maskSize := calcNodeCidrSize(cfg.Networking.PodSubnet)
if maskSize == "" { defaultArguments["allocate-node-cidrs"] = "true"
maskSize = calcNodeCidrSize(cfg.Networking.PodSubnet) defaultArguments["cluster-cidr"] = cfg.Networking.PodSubnet
} defaultArguments["node-cidr-mask-size"] = maskSize
command = append(command, "--allocate-node-cidrs=true", "--cluster-cidr="+cfg.Networking.PodSubnet,
"--node-cidr-mask-size="+maskSize)
} }
command := []string{"kube-controller-manager"}
command = append(command, kubeadmutil.BuildArgumentListFromMap(defaultArguments, cfg.ControllerManagerExtraArgs)...)
return command return command
} }

View File

@ -776,7 +776,8 @@ func TestGetControllerManagerCommand(t *testing.T) {
}, },
{ {
cfg: &kubeadmapi.MasterConfiguration{ cfg: &kubeadmapi.MasterConfiguration{
Networking: kubeadmapi.Networking{PodSubnet: "10.0.1.15/16", NodeCIDRMaskSize: "20"}, Networking: kubeadmapi.Networking{PodSubnet: "10.0.1.15/16"},
ControllerManagerExtraArgs: map[string]string{"node-cidr-mask-size": "20"},
CertificatesDir: testCertsDir, CertificatesDir: testCertsDir,
KubernetesVersion: "v1.7.0", KubernetesVersion: "v1.7.0",
}, },