Merge pull request #61705 from jstangroome/jstangroome-kubeadm-nodecidrmasksize
Automatic merge from submit-queue (batch tested with PRs 61705, 61609, 62103, 62113, 62115). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. Support overriding the --node-cidr-mask-size arg passed to kube-controller-manager Fixes: https://github.com/kubernetes/kubeadm/issues/724 **Release note**: ```release-note kubeadm config can now override the Node CIDR Mask Size passed to kube-controller-manager. ```
This commit is contained in:
		| @@ -321,15 +321,12 @@ 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 | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -337,9 +334,14 @@ func getControllerManagerCommand(cfg *kubeadmapi.MasterConfiguration, k8sVersion | |||||||
| 	// 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 := calcNodeCidrSize(cfg.Networking.PodSubnet) | 		maskSize := calcNodeCidrSize(cfg.Networking.PodSubnet) | ||||||
| 		command = append(command, "--allocate-node-cidrs=true", "--cluster-cidr="+cfg.Networking.PodSubnet, | 		defaultArguments["allocate-node-cidrs"] = "true" | ||||||
| 			"--node-cidr-mask-size="+maskSize) | 		defaultArguments["cluster-cidr"] = cfg.Networking.PodSubnet | ||||||
|  | 		defaultArguments["node-cidr-mask-size"] = maskSize | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	command := []string{"kube-controller-manager"} | ||||||
|  | 	command = append(command, kubeadmutil.BuildArgumentListFromMap(defaultArguments, cfg.ControllerManagerExtraArgs)...) | ||||||
|  |  | ||||||
| 	return command | 	return command | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -774,6 +774,29 @@ func TestGetControllerManagerCommand(t *testing.T) { | |||||||
| 				"--node-cidr-mask-size=24", | 				"--node-cidr-mask-size=24", | ||||||
| 			}, | 			}, | ||||||
| 		}, | 		}, | ||||||
|  | 		{ | ||||||
|  | 			cfg: &kubeadmapi.MasterConfiguration{ | ||||||
|  | 				Networking:                 kubeadmapi.Networking{PodSubnet: "10.0.1.15/16"}, | ||||||
|  | 				ControllerManagerExtraArgs: map[string]string{"node-cidr-mask-size": "20"}, | ||||||
|  | 				CertificatesDir:            testCertsDir, | ||||||
|  | 				KubernetesVersion:          "v1.7.0", | ||||||
|  | 			}, | ||||||
|  | 			expected: []string{ | ||||||
|  | 				"kube-controller-manager", | ||||||
|  | 				"--address=127.0.0.1", | ||||||
|  | 				"--leader-elect=true", | ||||||
|  | 				"--kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf", | ||||||
|  | 				"--root-ca-file=" + testCertsDir + "/ca.crt", | ||||||
|  | 				"--service-account-private-key-file=" + testCertsDir + "/sa.key", | ||||||
|  | 				"--cluster-signing-cert-file=" + testCertsDir + "/ca.crt", | ||||||
|  | 				"--cluster-signing-key-file=" + testCertsDir + "/ca.key", | ||||||
|  | 				"--use-service-account-credentials=true", | ||||||
|  | 				"--controllers=*,bootstrapsigner,tokencleaner", | ||||||
|  | 				"--allocate-node-cidrs=true", | ||||||
|  | 				"--cluster-cidr=10.0.1.15/16", | ||||||
|  | 				"--node-cidr-mask-size=20", | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
| 		{ | 		{ | ||||||
| 			cfg: &kubeadmapi.MasterConfiguration{ | 			cfg: &kubeadmapi.MasterConfiguration{ | ||||||
| 				Networking:        kubeadmapi.Networking{PodSubnet: "2001:db8::/64"}, | 				Networking:        kubeadmapi.Networking{PodSubnet: "2001:db8::/64"}, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Kubernetes Submit Queue
					Kubernetes Submit Queue