Commit 20dd848e authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #44204 from FengyunPan/optimize-code

Automatic merge from submit-queue Optimize getProxyMode() to get proxy mode 1. getProxyMode() does not need nodeGetter args after remove proxy-mode annotation. 2. we should get error when the version of iptables less than MinVersion.
parents 12adc0e8 b95b95dc
...@@ -225,7 +225,7 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err ...@@ -225,7 +225,7 @@ func NewProxyServerDefault(config *options.ProxyServerConfig) (*ProxyServer, err
var serviceHandler proxyconfig.ServiceConfigHandler var serviceHandler proxyconfig.ServiceConfigHandler
var endpointsEventHandler proxyconfig.EndpointsHandler var endpointsEventHandler proxyconfig.EndpointsHandler
proxyMode := getProxyMode(string(config.Mode), client.Core().Nodes(), hostname, iptInterface, iptables.LinuxKernelCompatTester{}) proxyMode := getProxyMode(string(config.Mode), iptInterface, iptables.LinuxKernelCompatTester{})
if proxyMode == proxyModeIPTables { if proxyMode == proxyModeIPTables {
glog.V(0).Info("Using iptables Proxier.") glog.V(0).Info("Using iptables Proxier.")
if config.IPTablesMasqueradeBit == nil { if config.IPTablesMasqueradeBit == nil {
...@@ -442,19 +442,15 @@ func getConntrackMax(config *options.ProxyServerConfig) (int, error) { ...@@ -442,19 +442,15 @@ func getConntrackMax(config *options.ProxyServerConfig) (int, error) {
return 0, nil return 0, nil
} }
type nodeGetter interface { func getProxyMode(proxyMode string, iptver iptables.IPTablesVersioner, kcompat iptables.KernelCompatTester) string {
Get(hostname string, options metav1.GetOptions) (*api.Node, error)
}
func getProxyMode(proxyMode string, client nodeGetter, hostname string, iptver iptables.IPTablesVersioner, kcompat iptables.KernelCompatTester) string {
if proxyMode == proxyModeUserspace { if proxyMode == proxyModeUserspace {
return proxyModeUserspace return proxyModeUserspace
} else if proxyMode == proxyModeIPTables { }
return tryIPTablesProxy(iptver, kcompat)
} else if proxyMode != "" { if proxyMode != "" && proxyMode != proxyModeIPTables {
glog.Warningf("Flag proxy-mode=%q unknown, assuming iptables proxy", proxyMode) glog.Warningf("Flag proxy-mode=%q unknown, assuming iptables proxy", proxyMode)
return tryIPTablesProxy(iptver, kcompat)
} }
return tryIPTablesProxy(iptver, kcompat) return tryIPTablesProxy(iptver, kcompat)
} }
......
...@@ -122,11 +122,9 @@ func Test_getProxyMode(t *testing.T) { ...@@ -122,11 +122,9 @@ func Test_getProxyMode(t *testing.T) {
}, },
} }
for i, c := range cases { for i, c := range cases {
getter := &fakeNodeInterface{}
getter.node.Annotations = map[string]string{c.annotationKey: c.annotationVal}
versioner := &fakeIPTablesVersioner{c.iptablesVersion, c.iptablesError} versioner := &fakeIPTablesVersioner{c.iptablesVersion, c.iptablesError}
kcompater := &fakeKernelCompatTester{c.kernelCompat} kcompater := &fakeKernelCompatTester{c.kernelCompat}
r := getProxyMode(c.flag, getter, "host", versioner, kcompater) r := getProxyMode(c.flag, versioner, kcompater)
if r != c.expected { if r != c.expected {
t.Errorf("Case[%d] Expected %q, got %q", i, c.expected, r) t.Errorf("Case[%d] Expected %q, got %q", i, c.expected, r)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment