Unverified Commit 4ca9fa73 authored by k8s-ci-robot's avatar k8s-ci-robot Committed by GitHub

Merge pull request #68760 from jessfraz/only-set-sysctl-if-not-set

pkg/proxy: only set sysctl if not already set
parents 4404cda7 f8ba640c
...@@ -95,9 +95,12 @@ func (rct realConntracker) SetTCPCloseWaitTimeout(seconds int) error { ...@@ -95,9 +95,12 @@ func (rct realConntracker) SetTCPCloseWaitTimeout(seconds int) error {
func (realConntracker) setIntSysCtl(name string, value int) error { func (realConntracker) setIntSysCtl(name string, value int) error {
entry := "net/netfilter/" + name entry := "net/netfilter/" + name
glog.Infof("Set sysctl '%v' to %v", entry, value) sys := sysctl.New()
if err := sysctl.New().SetSysctl(entry, value); err != nil { if val, _ := sys.GetSysctl(entry); val != value {
return err glog.Infof("Set sysctl '%v' to %v", entry, value)
if err := sys.SetSysctl(entry, value); err != nil {
return err
}
} }
return nil return nil
} }
......
...@@ -293,8 +293,10 @@ func NewProxier(ipt utiliptables.Interface, ...@@ -293,8 +293,10 @@ func NewProxier(ipt utiliptables.Interface,
nodePortAddresses []string, nodePortAddresses []string,
) (*Proxier, error) { ) (*Proxier, error) {
// Set the route_localnet sysctl we need for // Set the route_localnet sysctl we need for
if err := sysctl.SetSysctl(sysctlRouteLocalnet, 1); err != nil { if val, _ := sysctl.GetSysctl(sysctlRouteLocalnet); val != 1 {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlRouteLocalnet, err) if err := sysctl.SetSysctl(sysctlRouteLocalnet, 1); err != nil {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlRouteLocalnet, err)
}
} }
// Proxy needs br_netfilter and bridge-nf-call-iptables=1 when containers // Proxy needs br_netfilter and bridge-nf-call-iptables=1 when containers
......
...@@ -299,8 +299,10 @@ func NewProxier(ipt utiliptables.Interface, ...@@ -299,8 +299,10 @@ func NewProxier(ipt utiliptables.Interface,
nodePortAddresses []string, nodePortAddresses []string,
) (*Proxier, error) { ) (*Proxier, error) {
// Set the route_localnet sysctl we need for // Set the route_localnet sysctl we need for
if err := sysctl.SetSysctl(sysctlRouteLocalnet, 1); err != nil { if val, _ := sysctl.GetSysctl(sysctlRouteLocalnet); val != 1 {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlRouteLocalnet, err) if err := sysctl.SetSysctl(sysctlRouteLocalnet, 1); err != nil {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlRouteLocalnet, err)
}
} }
// Proxy needs br_netfilter and bridge-nf-call-iptables=1 when containers // Proxy needs br_netfilter and bridge-nf-call-iptables=1 when containers
...@@ -311,13 +313,17 @@ func NewProxier(ipt utiliptables.Interface, ...@@ -311,13 +313,17 @@ func NewProxier(ipt utiliptables.Interface,
} }
// Set the conntrack sysctl we need for // Set the conntrack sysctl we need for
if err := sysctl.SetSysctl(sysctlVSConnTrack, 1); err != nil { if val, _ := sysctl.GetSysctl(sysctlVSConnTrack); val != 1 {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlVSConnTrack, err) if err := sysctl.SetSysctl(sysctlVSConnTrack, 1); err != nil {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlVSConnTrack, err)
}
} }
// Set the ip_forward sysctl we need for // Set the ip_forward sysctl we need for
if err := sysctl.SetSysctl(sysctlForward, 1); err != nil { if val, _ := sysctl.GetSysctl(sysctlForward); val != 1 {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlForward, err) if err := sysctl.SetSysctl(sysctlForward, 1); err != nil {
return nil, fmt.Errorf("can't set sysctl %s: %v", sysctlForward, err)
}
} }
// Generate the masquerade mark to use for SNAT rules. // Generate the masquerade mark to use for SNAT rules.
......
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