From afa3a41614d634c95b1cd3ad5c8d990e2e34bd0e Mon Sep 17 00:00:00 2001 From: galal-hussein Date: Tue, 12 Dec 2017 18:14:18 +0200 Subject: [PATCH] Add iface option to flannel --- cluster/network.go | 9 ++++++++- network/flannel.go | 16 +++++++++++----- network/network.go | 1 + 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/cluster/network.go b/cluster/network.go index 3212abf1..fd3d68d0 100644 --- a/cluster/network.go +++ b/cluster/network.go @@ -15,6 +15,7 @@ const ( FlannelNetworkPlugin = "flannel" FlannelImage = "flannel_image" FlannelCNIImage = "flannel_cni_image" + FlannelIface = "flannel_iface" CalicoNetworkPlugin = "calico" CalicoNodeImage = "calico_node_image" @@ -48,7 +49,13 @@ func (c *Cluster) DeployNetworkPlugin() error { } func (c *Cluster) doFlannelDeploy() error { - pluginYaml := network.GetFlannelManifest(c.ClusterCIDR, c.Network.Options[FlannelImage], c.Network.Options[FlannelCNIImage]) + flannelConfig := map[string]string{ + network.ClusterCIDR: c.ClusterCIDR, + network.FlannelImage: c.Network.Options[FlannelImage], + network.FlannelCNIImage: c.Network.Options[FlannelCNIImage], + network.FlannelIface: c.Network.Options[FlannelIface], + } + pluginYaml := network.GetFlannelManifest(flannelConfig) return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName) } diff --git a/network/flannel.go b/network/flannel.go index 7391c5a9..34000781 100644 --- a/network/flannel.go +++ b/network/flannel.go @@ -1,6 +1,12 @@ package network -func GetFlannelManifest(clusterCIDR, image, cniImage string) string { +import "fmt" + +func GetFlannelManifest(flannelConfig map[string]string) string { + var extraArgs string + if len(flannelConfig[FlannelIface]) > 0 { + extraArgs = fmt.Sprintf(",--iface=%s", flannelConfig[FlannelIface]) + } return ` --- kind: ConfigMap @@ -34,7 +40,7 @@ data: } net-conf.json: | { - "Network": "` + clusterCIDR + `", + "Network": "` + flannelConfig[ClusterCIDR] + `", "Backend": { "Type": "vxlan" } @@ -57,7 +63,7 @@ spec: spec: containers: - name: kube-flannel - image: ` + image + ` + image: ` + flannelConfig[FlannelImage] + ` imagePullPolicy: IfNotPresent resources: limits: @@ -66,7 +72,7 @@ spec: requests: cpu: 150m memory: 64M - command: [ "/opt/bin/flanneld", "--ip-masq", "--kube-subnet-mgr" ] + command: ["/opt/bin/flanneld","--ip-masq","--kube-subnet-mgr"` + extraArgs + `] securityContext: privileged: true env: @@ -86,7 +92,7 @@ spec: - name: flannel-cfg mountPath: /etc/kube-flannel/ - name: install-cni - image: ` + cniImage + ` + image: ` + flannelConfig[FlannelCNIImage] + ` command: ["/install-cni.sh"] env: # The CNI network config to install on each node. diff --git a/network/network.go b/network/network.go index 423abb35..3b53e0ba 100644 --- a/network/network.go +++ b/network/network.go @@ -13,4 +13,5 @@ const ( ControllersImage = "controllersImage" FlannelImage = "flannelImage" FlannelCNIImage = "flannelCNIImage" + FlannelIface = "flannelIface" )