mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
Merge pull request #50523 from rpothier/kubeadm-ipv6
Automatic merge from submit-queue kubeadm: Add node-cidr-mask-size to pass to kube-controller-manager for IPv6 Due to the increased size of subnets with IPv6, the node-cidr-mask-size needs to be passed to kube-controller-manager. If IPv4 it will be set to 24 as it was previously, if IPv6, it will be set to 64 **What this PR does / why we need it**: If the user specifies the --pod-network-cidr with kubeadm init, this caused the kube-controller-manager manifest to include the "--allocate-node-cidrs" and "--cluster-cidr" flags to be set. The --node-cidr-mask-size is not set, and currently defaults to 24, which is fine for IPv4, but not appropriate for IPv6. This change passes the a value as the node-cidr-mask-size to the controller-manager. It detects if it is IPv4 or v6, and sets --node-cidr-mask-size to 24 for IPv4 as before, and to 64 for IPv6. **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #50469 **Special notes for your reviewer**: **Release note**: ```release-note NONE ```
This commit is contained in:
commit
7941645e39
@ -18,6 +18,7 @@ package controlplane
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
@ -230,7 +231,14 @@ func getControllerManagerCommand(cfg *kubeadmapi.MasterConfiguration, k8sVersion
|
|||||||
// 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 != "" {
|
||||||
command = append(command, "--allocate-node-cidrs=true", "--cluster-cidr="+cfg.Networking.PodSubnet)
|
maskSize := "24"
|
||||||
|
if ip, _, err := net.ParseCIDR(cfg.Networking.PodSubnet); err == nil {
|
||||||
|
if ip.To4() == nil {
|
||||||
|
maskSize = "64"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
command = append(command, "--allocate-node-cidrs=true", "--cluster-cidr="+cfg.Networking.PodSubnet,
|
||||||
|
"--node-cidr-mask-size="+maskSize)
|
||||||
}
|
}
|
||||||
return command
|
return command
|
||||||
}
|
}
|
||||||
|
@ -407,7 +407,7 @@ func TestGetControllerManagerCommand(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
cfg: &kubeadmapi.MasterConfiguration{
|
cfg: &kubeadmapi.MasterConfiguration{
|
||||||
Networking: kubeadmapi.Networking{PodSubnet: "bar"},
|
Networking: kubeadmapi.Networking{PodSubnet: "10.0.1.15/16"},
|
||||||
CertificatesDir: testCertsDir,
|
CertificatesDir: testCertsDir,
|
||||||
KubernetesVersion: "v1.7.0",
|
KubernetesVersion: "v1.7.0",
|
||||||
},
|
},
|
||||||
@ -423,7 +423,30 @@ func TestGetControllerManagerCommand(t *testing.T) {
|
|||||||
"--use-service-account-credentials=true",
|
"--use-service-account-credentials=true",
|
||||||
"--controllers=*,bootstrapsigner,tokencleaner",
|
"--controllers=*,bootstrapsigner,tokencleaner",
|
||||||
"--allocate-node-cidrs=true",
|
"--allocate-node-cidrs=true",
|
||||||
"--cluster-cidr=bar",
|
"--cluster-cidr=10.0.1.15/16",
|
||||||
|
"--node-cidr-mask-size=24",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cfg: &kubeadmapi.MasterConfiguration{
|
||||||
|
Networking: kubeadmapi.Networking{PodSubnet: "2001:101:115::/48"},
|
||||||
|
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=2001:101:115::/48",
|
||||||
|
"--node-cidr-mask-size=64",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user