Browse code

Fix up net.bridge.bridge-nf-call-iptables after kubernetes breaks it

Patch from Dan Williams

Dan Winship authored on 2016/01/16 10:56:57
Showing 1 changed files
... ...
@@ -14,7 +14,9 @@ import (
14 14
 	"github.com/openshift/origin/pkg/cmd/server/kubernetes"
15 15
 	kerrors "k8s.io/kubernetes/pkg/api/errors"
16 16
 	kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
17
+	"k8s.io/kubernetes/pkg/util/sysctl"
17 18
 
19
+	osdn "github.com/openshift/openshift-sdn/plugins/osdn/ovs"
18 20
 	"github.com/openshift/origin/pkg/cmd/server/admin"
19 21
 	configapi "github.com/openshift/origin/pkg/cmd/server/api"
20 22
 	configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest"
... ...
@@ -263,5 +265,15 @@ func StartNode(nodeConfig configapi.NodeConfig) error {
263 263
 	config.RunSDN()
264 264
 	config.RunProxy()
265 265
 
266
+	// HACK: RunProxy resets bridge-nf-call-iptables from what openshift-sdn requires
267
+	if config.SDNPlugin != nil {
268
+		sdnPluginName := nodeConfig.NetworkConfig.NetworkPluginName
269
+		if sdnPluginName == osdn.SingleTenantPluginName() || sdnPluginName == osdn.MultiTenantPluginName() {
270
+			if err := sysctl.SetSysctl("net/bridge/bridge-nf-call-iptables", 0); err != nil {
271
+				glog.Warningf("Could not set net.bridge.bridge-nf-call-iptables sysctl: %s", err)
272
+			}
273
+		}
274
+	}
275
+
266 276
 	return nil
267 277
 }