Skip to content

Commit

Permalink
Merge pull request #121008 from danwinship/proxy-startup-error-regres…
Browse files Browse the repository at this point in the history
…sion

Make a certain ipv4-vs-ipv6 config error non-fatal, for backward compat
  • Loading branch information
k8s-ci-robot authored Oct 5, 2023
2 parents 598076a + b2f0052 commit 3bfa948
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 31 deletions.
2 changes: 1 addition & 1 deletion cmd/kube-proxy/app/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
66 changes: 36 additions & 30 deletions cmd/kube-proxy/app/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -817,11 +817,12 @@ func Test_detectNodeIPs(t *testing.T) {

func Test_checkIPConfig(t *testing.T) {
cases := []struct {
name string
proxy *ProxyServer
ssErr bool
dsErr bool
fatal bool
name string
proxy *ProxyServer
ssErr bool
ssFatal bool
dsErr bool
dsFatal bool
}{
{
name: "empty config",
Expand Down Expand Up @@ -874,9 +875,10 @@ func Test_checkIPConfig(t *testing.T) {
},
PrimaryIPFamily: v1.IPv4Protocol,
},
ssErr: true,
dsErr: true,
fatal: false,
ssErr: true,
ssFatal: false,
dsErr: true,
dsFatal: false,
},
{
name: "wrong-family clusterCIDR when using ClusterCIDR LocalDetector",
Expand All @@ -887,9 +889,10 @@ func Test_checkIPConfig(t *testing.T) {
},
PrimaryIPFamily: v1.IPv4Protocol,
},
ssErr: true,
dsErr: true,
fatal: true,
ssErr: true,
ssFatal: true,
dsErr: true,
dsFatal: false,
},

{
Expand Down Expand Up @@ -933,9 +936,10 @@ func Test_checkIPConfig(t *testing.T) {
},
PrimaryIPFamily: v1.IPv6Protocol,
},
ssErr: true,
dsErr: true,
fatal: false,
ssErr: true,
ssFatal: false,
dsErr: true,
dsFatal: false,
},

{
Expand Down Expand Up @@ -983,9 +987,10 @@ func Test_checkIPConfig(t *testing.T) {
PrimaryIPFamily: v1.IPv4Protocol,
podCIDRs: []string{"fd01:2345::/64"},
},
ssErr: true,
dsErr: true,
fatal: true,
ssErr: true,
ssFatal: true,
dsErr: true,
dsFatal: true,
},

{
Expand All @@ -1011,9 +1016,10 @@ func Test_checkIPConfig(t *testing.T) {
},
PrimaryIPFamily: v1.IPv4Protocol,
},
ssErr: true,
dsErr: true,
fatal: false,
ssErr: true,
ssFatal: false,
dsErr: true,
dsFatal: false,
},

{
Expand Down Expand Up @@ -1057,9 +1063,9 @@ func Test_checkIPConfig(t *testing.T) {
},
PrimaryIPFamily: v1.IPv6Protocol,
},
ssErr: true,
dsErr: false,
fatal: false,
ssErr: true,
ssFatal: false,
dsErr: false,
},

{
Expand All @@ -1085,9 +1091,9 @@ func Test_checkIPConfig(t *testing.T) {
},
PrimaryIPFamily: v1.IPv6Protocol,
},
ssErr: true,
dsErr: false,
fatal: false,
ssErr: true,
ssFatal: false,
dsErr: false,
},
}

Expand All @@ -1098,17 +1104,17 @@ 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)
if err != nil && !c.dsErr {
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)
}
})
}
Expand Down

0 comments on commit 3bfa948

Please sign in to comment.