mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
kubeadm: fix ut failures of dualstack GA
This commit is contained in:
parent
a0cc3f1c9a
commit
1385bd3a06
@ -223,41 +223,31 @@ func TestValidateIPNetFromString(t *testing.T) {
|
||||
|
||||
func TestValidatePodSubnetNodeMask(t *testing.T) {
|
||||
var tests = []struct {
|
||||
name string
|
||||
subnet string
|
||||
cmExtraArgs map[string]string
|
||||
checkDualStack bool
|
||||
expected bool
|
||||
name string
|
||||
subnet string
|
||||
cmExtraArgs map[string]string
|
||||
expected bool
|
||||
}{
|
||||
{"single IPv4, but mask too small. Default node-mask", "10.0.0.16/29", nil, false, false},
|
||||
{"single IPv4, but mask too small. Configured node-mask", "10.0.0.16/24", map[string]string{"node-cidr-mask-size": "23"}, false, false},
|
||||
{"single IPv6, but mask too small. Default node-mask", "2001:db8::1/112", nil, false, false},
|
||||
{"single IPv6, but mask too small. Configured node-mask", "2001:db8::1/64", map[string]string{"node-cidr-mask-size": "24"}, false, false},
|
||||
{"single IPv6, but mask difference greater than 16. Default node-mask", "2001:db8::1/12", nil, false, false},
|
||||
{"single IPv6, but mask difference greater than 16. Configured node-mask", "2001:db8::1/64", map[string]string{"node-cidr-mask-size": "120"}, false, false},
|
||||
{"single IPv4 CIDR", "10.0.0.16/12", nil, false, true},
|
||||
{"single IPv6 CIDR", "2001:db8::/48", nil, false, true},
|
||||
// dual-stack:
|
||||
{"dual IPv4 only, but mask too small. Default node-mask", "10.0.0.16/29", nil, true, false},
|
||||
{"dual IPv4 only, but mask too small. Configured node-mask", "10.0.0.16/24", map[string]string{"node-cidr-mask-size-ipv4": "23"}, true, false},
|
||||
{"dual IPv6 only, but mask too small. Default node-mask", "2001:db8::1/112", nil, true, false},
|
||||
{"dual IPv6 only, but mask too small. Configured node-mask", "2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "24"}, true, false},
|
||||
{"dual IPv6 only, but mask difference greater than 16. Default node-mask", "2001:db8::1/12", nil, true, false},
|
||||
{"dual IPv6 only, but mask difference greater than 16. Configured node-mask", "2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "120"}, true, false},
|
||||
{"dual IPv4 only CIDR", "10.0.0.16/12", nil, true, true},
|
||||
{"dual IPv6 only CIDR", "2001:db8::/48", nil, true, true},
|
||||
{"dual, but IPv4 mask too small. Default node-mask", "10.0.0.16/29,2001:db8::/48", nil, true, false},
|
||||
{"dual, but IPv4 mask too small. Configured node-mask", "10.0.0.16/24,2001:db8::/48", map[string]string{"node-cidr-mask-size-ipv4": "23"}, true, false},
|
||||
{"dual, but IPv6 mask too small. Default node-mask", "2001:db8::1/112,10.0.0.16/16", nil, true, false},
|
||||
{"dual, but IPv6 mask too small. Configured node-mask", "10.0.0.16/16,2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "24"}, true, false},
|
||||
{"dual, but mask difference greater than 16. Default node-mask", "2001:db8::1/12,10.0.0.16/16", nil, true, false},
|
||||
{"dual, but mask difference greater than 16. Configured node-mask", "10.0.0.16/16,2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "120"}, true, false},
|
||||
{"dual IPv4 IPv6", "2001:db8::/48,10.0.0.16/12", nil, true, true},
|
||||
{"dual IPv6 IPv4", "2001:db8::/48,10.0.0.16/12", nil, true, true},
|
||||
{"dual IPv4 only, but mask too small. Default node-mask", "10.0.0.16/29", nil, false},
|
||||
{"dual IPv4 only, but mask too small. Configured node-mask", "10.0.0.16/24", map[string]string{"node-cidr-mask-size-ipv4": "23"}, false},
|
||||
{"dual IPv6 only, but mask too small. Default node-mask", "2001:db8::1/112", nil, false},
|
||||
{"dual IPv6 only, but mask too small. Configured node-mask", "2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "24"}, false},
|
||||
{"dual IPv6 only, but mask difference greater than 16. Default node-mask", "2001:db8::1/12", nil, false},
|
||||
{"dual IPv6 only, but mask difference greater than 16. Configured node-mask", "2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "120"}, false},
|
||||
{"dual IPv4 only CIDR", "10.0.0.16/12", nil, true},
|
||||
{"dual IPv6 only CIDR", "2001:db8::/48", nil, true},
|
||||
{"dual, but IPv4 mask too small. Default node-mask", "10.0.0.16/29,2001:db8::/48", nil, false},
|
||||
{"dual, but IPv4 mask too small. Configured node-mask", "10.0.0.16/24,2001:db8::/48", map[string]string{"node-cidr-mask-size-ipv4": "23"}, false},
|
||||
{"dual, but IPv6 mask too small. Default node-mask", "2001:db8::1/112,10.0.0.16/16", nil, false},
|
||||
{"dual, but IPv6 mask too small. Configured node-mask", "10.0.0.16/16,2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "24"}, false},
|
||||
{"dual, but mask difference greater than 16. Default node-mask", "2001:db8::1/12,10.0.0.16/16", nil, false},
|
||||
{"dual, but mask difference greater than 16. Configured node-mask", "10.0.0.16/16,2001:db8::1/64", map[string]string{"node-cidr-mask-size-ipv6": "120"}, false},
|
||||
{"dual IPv4 IPv6", "2001:db8::/48,10.0.0.16/12", nil, true},
|
||||
{"dual IPv6 IPv4", "2001:db8::/48,10.0.0.16/12", nil, true},
|
||||
}
|
||||
for _, rt := range tests {
|
||||
cfg := &kubeadmapi.ClusterConfiguration{
|
||||
FeatureGates: map[string]bool{features.IPv6DualStack: rt.checkDualStack},
|
||||
ControllerManager: kubeadmapi.ControlPlaneComponent{
|
||||
ExtraArgs: rt.cmExtraArgs,
|
||||
},
|
||||
|
@ -34,7 +34,6 @@ import (
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
||||
)
|
||||
|
||||
func testKubeletConfigMap(contents string) *v1.ConfigMap {
|
||||
@ -128,18 +127,14 @@ func TestKubeletDefault(t *testing.T) {
|
||||
{
|
||||
name: "Service subnet, enabled dual stack defaulting works",
|
||||
clusterCfg: kubeadmapi.ClusterConfiguration{
|
||||
FeatureGates: map[string]bool{
|
||||
features.IPv6DualStack: true,
|
||||
},
|
||||
FeatureGates: map[string]bool{},
|
||||
Networking: kubeadmapi.Networking{
|
||||
ServiceSubnet: "192.168.0.0/16",
|
||||
},
|
||||
},
|
||||
expected: kubeletConfig{
|
||||
config: kubeletconfig.KubeletConfiguration{
|
||||
FeatureGates: map[string]bool{
|
||||
features.IPv6DualStack: true,
|
||||
},
|
||||
FeatureGates: map[string]bool{},
|
||||
StaticPodPath: kubeadmapiv1.DefaultManifestsDir,
|
||||
ClusterDNS: []string{"192.168.0.10"},
|
||||
Authentication: kubeletconfig.KubeletAuthentication{
|
||||
|
@ -33,7 +33,6 @@ import (
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
kubeadmapiv1 "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
||||
)
|
||||
|
||||
func testKubeProxyConfigMap(contents string) *v1.ConfigMap {
|
||||
@ -104,26 +103,6 @@ func TestKubeProxyDefault(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "IPv6DualStack feature gate set to true",
|
||||
clusterCfg: kubeadmapi.ClusterConfiguration{
|
||||
FeatureGates: map[string]bool{
|
||||
features.IPv6DualStack: true,
|
||||
},
|
||||
},
|
||||
endpoint: kubeadmapi.APIEndpoint{},
|
||||
expected: kubeProxyConfig{
|
||||
config: kubeproxyconfig.KubeProxyConfiguration{
|
||||
FeatureGates: map[string]bool{
|
||||
features.IPv6DualStack: true,
|
||||
},
|
||||
BindAddress: kubeadmapiv1.DefaultProxyBindAddressv6,
|
||||
ClientConnection: componentbaseconfig.ClientConnectionConfiguration{
|
||||
Kubeconfig: kubeproxyKubeConfigFileName,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
@ -182,35 +182,30 @@ func TestGetKubernetesServiceCIDR(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
svcSubnetList: "192.168.10.0/24",
|
||||
isDualStack: false,
|
||||
expected: "192.168.10.0/24",
|
||||
expectedError: false,
|
||||
name: "valid: valid IPv4 range from single-stack",
|
||||
},
|
||||
{
|
||||
svcSubnetList: "fd03::/112",
|
||||
isDualStack: false,
|
||||
expected: "fd03::/112",
|
||||
expectedError: false,
|
||||
name: "valid: valid IPv6 range from single-stack",
|
||||
},
|
||||
{
|
||||
svcSubnetList: "192.168.10.0/24,fd03::/112",
|
||||
isDualStack: true,
|
||||
expected: "192.168.10.0/24",
|
||||
expectedError: false,
|
||||
name: "valid: valid <IPv4,IPv6> ranges from dual-stack",
|
||||
},
|
||||
{
|
||||
svcSubnetList: "fd03::/112,192.168.10.0/24",
|
||||
isDualStack: true,
|
||||
expected: "fd03::/112",
|
||||
expectedError: false,
|
||||
name: "valid: valid <IPv6,IPv4> ranges from dual-stack",
|
||||
},
|
||||
{
|
||||
svcSubnetList: "192.168.10.0/24,fd03:x::/112",
|
||||
isDualStack: true,
|
||||
expected: "",
|
||||
expectedError: true,
|
||||
name: "invalid: failed to parse subnet range for dual-stack",
|
||||
@ -219,7 +214,7 @@ func TestGetKubernetesServiceCIDR(t *testing.T) {
|
||||
|
||||
for _, rt := range tests {
|
||||
t.Run(rt.name, func(t *testing.T) {
|
||||
actual, actualError := GetKubernetesServiceCIDR(rt.svcSubnetList, rt.isDualStack)
|
||||
actual, actualError := GetKubernetesServiceCIDR(rt.svcSubnetList)
|
||||
if rt.expectedError {
|
||||
if actualError == nil {
|
||||
t.Errorf("failed GetKubernetesServiceCIDR:\n\texpected error, but got no error")
|
||||
|
@ -80,30 +80,26 @@ func TestGetDNSIP(t *testing.T) {
|
||||
name: "subnet mask 12",
|
||||
svcSubnet: "10.96.0.0/12",
|
||||
expectedDNSIP: "10.96.0.10",
|
||||
isDualStack: false,
|
||||
},
|
||||
{
|
||||
name: "subnet mask 26",
|
||||
svcSubnet: "10.87.116.64/26",
|
||||
expectedDNSIP: "10.87.116.74",
|
||||
isDualStack: false,
|
||||
},
|
||||
{
|
||||
name: "dual-stack ipv4 primary, subnet mask 26",
|
||||
svcSubnet: "10.87.116.64/26,fd03::/112",
|
||||
expectedDNSIP: "10.87.116.74",
|
||||
isDualStack: true,
|
||||
},
|
||||
{
|
||||
name: "dual-stack ipv6 primary, subnet mask 112",
|
||||
svcSubnet: "fd03::/112,10.87.116.64/26",
|
||||
expectedDNSIP: "fd03::a",
|
||||
isDualStack: true,
|
||||
},
|
||||
}
|
||||
for _, rt := range tests {
|
||||
t.Run(rt.name, func(t *testing.T) {
|
||||
dnsIP, err := kubeadmconstants.GetDNSIP(rt.svcSubnet, rt.isDualStack)
|
||||
dnsIP, err := kubeadmconstants.GetDNSIP(rt.svcSubnet)
|
||||
if err != nil {
|
||||
t.Fatalf("couldn't get dnsIP : %v", err)
|
||||
}
|
||||
|
@ -32,7 +32,6 @@ import (
|
||||
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/features"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
|
||||
pkiutiltesting "k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil/testing"
|
||||
staticpodutil "k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod"
|
||||
@ -599,7 +598,6 @@ func TestGetControllerManagerCommand(t *testing.T) {
|
||||
},
|
||||
CertificatesDir: testCertsDir,
|
||||
KubernetesVersion: cpVersion,
|
||||
FeatureGates: map[string]bool{features.IPv6DualStack: true},
|
||||
},
|
||||
expected: []string{
|
||||
"kube-controller-manager",
|
||||
@ -616,7 +614,6 @@ func TestGetControllerManagerCommand(t *testing.T) {
|
||||
"--authorization-kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
|
||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||
"--requestheader-client-ca-file=" + testCertsDir + "/front-proxy-ca.crt",
|
||||
"--feature-gates=IPv6DualStack=true",
|
||||
"--allocate-node-cidrs=true",
|
||||
"--cluster-cidr=10.0.1.15/16",
|
||||
"--service-cluster-ip-range=172.20.0.0/24",
|
||||
@ -728,7 +725,6 @@ func TestGetControllerManagerCommand(t *testing.T) {
|
||||
},
|
||||
CertificatesDir: testCertsDir,
|
||||
KubernetesVersion: cpVersion,
|
||||
FeatureGates: map[string]bool{features.IPv6DualStack: true},
|
||||
},
|
||||
expected: []string{
|
||||
"kube-controller-manager",
|
||||
@ -745,7 +741,6 @@ func TestGetControllerManagerCommand(t *testing.T) {
|
||||
"--authorization-kubeconfig=" + kubeadmconstants.KubernetesDir + "/controller-manager.conf",
|
||||
"--client-ca-file=" + testCertsDir + "/ca.crt",
|
||||
"--requestheader-client-ca-file=" + testCertsDir + "/front-proxy-ca.crt",
|
||||
"--feature-gates=IPv6DualStack=true",
|
||||
"--allocate-node-cidrs=true",
|
||||
"--cluster-cidr=2001:db8::/64,10.1.0.0/16",
|
||||
"--service-cluster-ip-range=fd03::/112,192.168.0.0/16",
|
||||
|
Loading…
Reference in New Issue
Block a user