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, ",")
 | 
			
		||||
		if badCIDRs(clusterCIDRs, 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
 | 
			
		||||
				fatal = true
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
@@ -820,8 +820,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
		name    string
 | 
			
		||||
		proxy   *ProxyServer
 | 
			
		||||
		ssErr   bool
 | 
			
		||||
		ssFatal bool
 | 
			
		||||
		dsErr   bool
 | 
			
		||||
		fatal bool
 | 
			
		||||
		dsFatal bool
 | 
			
		||||
	}{
 | 
			
		||||
		{
 | 
			
		||||
			name: "empty config",
 | 
			
		||||
@@ -875,8 +876,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				PrimaryIPFamily: v1.IPv4Protocol,
 | 
			
		||||
			},
 | 
			
		||||
			ssErr:   true,
 | 
			
		||||
			ssFatal: false,
 | 
			
		||||
			dsErr:   true,
 | 
			
		||||
			fatal: false,
 | 
			
		||||
			dsFatal: false,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			name: "wrong-family clusterCIDR when using ClusterCIDR LocalDetector",
 | 
			
		||||
@@ -888,8 +890,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				PrimaryIPFamily: v1.IPv4Protocol,
 | 
			
		||||
			},
 | 
			
		||||
			ssErr:   true,
 | 
			
		||||
			ssFatal: true,
 | 
			
		||||
			dsErr:   true,
 | 
			
		||||
			fatal: true,
 | 
			
		||||
			dsFatal: false,
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		{
 | 
			
		||||
@@ -934,8 +937,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				PrimaryIPFamily: v1.IPv6Protocol,
 | 
			
		||||
			},
 | 
			
		||||
			ssErr:   true,
 | 
			
		||||
			ssFatal: false,
 | 
			
		||||
			dsErr:   true,
 | 
			
		||||
			fatal: false,
 | 
			
		||||
			dsFatal: false,
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		{
 | 
			
		||||
@@ -984,8 +988,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				podCIDRs:        []string{"fd01:2345::/64"},
 | 
			
		||||
			},
 | 
			
		||||
			ssErr:   true,
 | 
			
		||||
			ssFatal: true,
 | 
			
		||||
			dsErr:   true,
 | 
			
		||||
			fatal: true,
 | 
			
		||||
			dsFatal: true,
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		{
 | 
			
		||||
@@ -1012,8 +1017,9 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				PrimaryIPFamily: v1.IPv4Protocol,
 | 
			
		||||
			},
 | 
			
		||||
			ssErr:   true,
 | 
			
		||||
			ssFatal: false,
 | 
			
		||||
			dsErr:   true,
 | 
			
		||||
			fatal: false,
 | 
			
		||||
			dsFatal: false,
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		{
 | 
			
		||||
@@ -1058,8 +1064,8 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				PrimaryIPFamily: v1.IPv6Protocol,
 | 
			
		||||
			},
 | 
			
		||||
			ssErr:   true,
 | 
			
		||||
			ssFatal: false,
 | 
			
		||||
			dsErr:   false,
 | 
			
		||||
			fatal: false,
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		{
 | 
			
		||||
@@ -1086,8 +1092,8 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				PrimaryIPFamily: v1.IPv6Protocol,
 | 
			
		||||
			},
 | 
			
		||||
			ssErr:   true,
 | 
			
		||||
			ssFatal: false,
 | 
			
		||||
			dsErr:   false,
 | 
			
		||||
			fatal: false,
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@@ -1098,8 +1104,8 @@ func Test_checkIPConfig(t *testing.T) {
 | 
			
		||||
				t.Errorf("unexpected error in single-stack case: %v", err)
 | 
			
		||||
			} else if err == nil && c.ssErr {
 | 
			
		||||
				t.Errorf("unexpected lack of error in single-stack case")
 | 
			
		||||
			} else if fatal != c.fatal {
 | 
			
		||||
				t.Errorf("expected fatal=%v, got %v", c.fatal, fatal)
 | 
			
		||||
			} else if fatal != c.ssFatal {
 | 
			
		||||
				t.Errorf("expected fatal=%v, got %v", c.ssFatal, fatal)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			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)
 | 
			
		||||
			} else if err == nil && c.dsErr {
 | 
			
		||||
				t.Errorf("unexpected lack of error in dual-stack case")
 | 
			
		||||
			} else if fatal != c.fatal {
 | 
			
		||||
				t.Errorf("expected fatal=%v, got %v", c.fatal, fatal)
 | 
			
		||||
			} else if fatal != c.dsFatal {
 | 
			
		||||
				t.Errorf("expected fatal=%v, got %v", c.dsFatal, fatal)
 | 
			
		||||
			}
 | 
			
		||||
		})
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user