Make a certain ipv4-vs-ipv6 config error non-fatal, for backward compat
This commit is contained in:
		@@ -678,7 +678,7 @@ func checkIPConfig(s *ProxyServer, dualStackSupported bool) (error, bool) {
 | 
				
			|||||||
		clusterCIDRs := strings.Split(s.Config.ClusterCIDR, ",")
 | 
							clusterCIDRs := strings.Split(s.Config.ClusterCIDR, ",")
 | 
				
			||||||
		if badCIDRs(clusterCIDRs, badFamily) {
 | 
							if badCIDRs(clusterCIDRs, badFamily) {
 | 
				
			||||||
			errors = append(errors, fmt.Errorf("cluster is %s but clusterCIDRs contains only IPv%s addresses", clusterType, badFamily))
 | 
								errors = append(errors, fmt.Errorf("cluster is %s but clusterCIDRs contains only IPv%s addresses", clusterType, badFamily))
 | 
				
			||||||
			if s.Config.DetectLocalMode == kubeproxyconfig.LocalModeClusterCIDR {
 | 
								if s.Config.DetectLocalMode == kubeproxyconfig.LocalModeClusterCIDR && !dualStackSupported {
 | 
				
			||||||
				// This has always been a fatal error
 | 
									// This has always been a fatal error
 | 
				
			||||||
				fatal = true
 | 
									fatal = true
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -817,11 +817,12 @@ func Test_detectNodeIPs(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func Test_checkIPConfig(t *testing.T) {
 | 
					func Test_checkIPConfig(t *testing.T) {
 | 
				
			||||||
	cases := []struct {
 | 
						cases := []struct {
 | 
				
			||||||
		name  string
 | 
							name    string
 | 
				
			||||||
		proxy *ProxyServer
 | 
							proxy   *ProxyServer
 | 
				
			||||||
		ssErr bool
 | 
							ssErr   bool
 | 
				
			||||||
		dsErr bool
 | 
							ssFatal bool
 | 
				
			||||||
		fatal bool
 | 
							dsErr   bool
 | 
				
			||||||
 | 
							dsFatal bool
 | 
				
			||||||
	}{
 | 
						}{
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			name: "empty config",
 | 
								name: "empty config",
 | 
				
			||||||
@@ -874,9 +875,10 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
				PrimaryIPFamily: v1.IPv4Protocol,
 | 
									PrimaryIPFamily: v1.IPv4Protocol,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			ssErr: true,
 | 
								ssErr:   true,
 | 
				
			||||||
			dsErr: true,
 | 
								ssFatal: false,
 | 
				
			||||||
			fatal: false,
 | 
								dsErr:   true,
 | 
				
			||||||
 | 
								dsFatal: false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			name: "wrong-family clusterCIDR when using ClusterCIDR LocalDetector",
 | 
								name: "wrong-family clusterCIDR when using ClusterCIDR LocalDetector",
 | 
				
			||||||
@@ -887,9 +889,10 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
				PrimaryIPFamily: v1.IPv4Protocol,
 | 
									PrimaryIPFamily: v1.IPv4Protocol,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			ssErr: true,
 | 
								ssErr:   true,
 | 
				
			||||||
			dsErr: true,
 | 
								ssFatal: true,
 | 
				
			||||||
			fatal: true,
 | 
								dsErr:   true,
 | 
				
			||||||
 | 
								dsFatal: false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -933,9 +936,10 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
				PrimaryIPFamily: v1.IPv6Protocol,
 | 
									PrimaryIPFamily: v1.IPv6Protocol,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			ssErr: true,
 | 
								ssErr:   true,
 | 
				
			||||||
			dsErr: true,
 | 
								ssFatal: false,
 | 
				
			||||||
			fatal: false,
 | 
								dsErr:   true,
 | 
				
			||||||
 | 
								dsFatal: false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -983,9 +987,10 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				PrimaryIPFamily: v1.IPv4Protocol,
 | 
									PrimaryIPFamily: v1.IPv4Protocol,
 | 
				
			||||||
				podCIDRs:        []string{"fd01:2345::/64"},
 | 
									podCIDRs:        []string{"fd01:2345::/64"},
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			ssErr: true,
 | 
								ssErr:   true,
 | 
				
			||||||
			dsErr: true,
 | 
								ssFatal: true,
 | 
				
			||||||
			fatal: true,
 | 
								dsErr:   true,
 | 
				
			||||||
 | 
								dsFatal: true,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -1011,9 +1016,10 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
				PrimaryIPFamily: v1.IPv4Protocol,
 | 
									PrimaryIPFamily: v1.IPv4Protocol,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			ssErr: true,
 | 
								ssErr:   true,
 | 
				
			||||||
			dsErr: true,
 | 
								ssFatal: false,
 | 
				
			||||||
			fatal: false,
 | 
								dsErr:   true,
 | 
				
			||||||
 | 
								dsFatal: false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -1057,9 +1063,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
				PrimaryIPFamily: v1.IPv6Protocol,
 | 
									PrimaryIPFamily: v1.IPv6Protocol,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			ssErr: true,
 | 
								ssErr:   true,
 | 
				
			||||||
			dsErr: false,
 | 
								ssFatal: false,
 | 
				
			||||||
			fatal: false,
 | 
								dsErr:   false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
@@ -1085,9 +1091,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				},
 | 
									},
 | 
				
			||||||
				PrimaryIPFamily: v1.IPv6Protocol,
 | 
									PrimaryIPFamily: v1.IPv6Protocol,
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			ssErr: true,
 | 
								ssErr:   true,
 | 
				
			||||||
			dsErr: false,
 | 
								ssFatal: false,
 | 
				
			||||||
			fatal: false,
 | 
								dsErr:   false,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1098,8 +1104,8 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				t.Errorf("unexpected error in single-stack case: %v", err)
 | 
									t.Errorf("unexpected error in single-stack case: %v", err)
 | 
				
			||||||
			} else if err == nil && c.ssErr {
 | 
								} else if err == nil && c.ssErr {
 | 
				
			||||||
				t.Errorf("unexpected lack of error in single-stack case")
 | 
									t.Errorf("unexpected lack of error in single-stack case")
 | 
				
			||||||
			} else if fatal != c.fatal {
 | 
								} else if fatal != c.ssFatal {
 | 
				
			||||||
				t.Errorf("expected fatal=%v, got %v", c.fatal, fatal)
 | 
									t.Errorf("expected fatal=%v, got %v", c.ssFatal, fatal)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			err, fatal = checkIPConfig(c.proxy, true)
 | 
								err, fatal = checkIPConfig(c.proxy, true)
 | 
				
			||||||
@@ -1107,8 +1113,8 @@ func Test_checkIPConfig(t *testing.T) {
 | 
				
			|||||||
				t.Errorf("unexpected error in dual-stack case: %v", err)
 | 
									t.Errorf("unexpected error in dual-stack case: %v", err)
 | 
				
			||||||
			} else if err == nil && c.dsErr {
 | 
								} else if err == nil && c.dsErr {
 | 
				
			||||||
				t.Errorf("unexpected lack of error in dual-stack case")
 | 
									t.Errorf("unexpected lack of error in dual-stack case")
 | 
				
			||||||
			} else if fatal != c.fatal {
 | 
								} else if fatal != c.dsFatal {
 | 
				
			||||||
				t.Errorf("expected fatal=%v, got %v", c.fatal, fatal)
 | 
									t.Errorf("expected fatal=%v, got %v", c.dsFatal, fatal)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user