diff --git a/cluster/network.go b/cluster/network.go index 5630ce3f..a6c1754f 100644 --- a/cluster/network.go +++ b/cluster/network.go @@ -105,6 +105,7 @@ const ( FlannelBackend = "FlannelBackend" CanalInterface = "CanalInterface" WeavePassword = "WeavePassword" + MTU = "MTU" RBACConfig = "RBACConfig" ClusterVersion = "ClusterVersion" @@ -194,6 +195,7 @@ func (c *Cluster) doCalicoDeploy(ctx context.Context, data map[string]interface{ FlexVolImg: c.SystemImages.CalicoFlexVol, RBACConfig: c.Authorization.Mode, NodeSelector: c.Network.NodeSelector, + MTU: c.Network.MTU, } pluginYaml, err := c.getNetworkPluginManifest(calicoConfig, data) if err != nil { @@ -232,6 +234,7 @@ func (c *Cluster) doCanalDeploy(ctx context.Context, data map[string]interface{} "Port": flannelPort, }, NodeSelector: c.Network.NodeSelector, + MTU: c.Network.MTU, } pluginYaml, err := c.getNetworkPluginManifest(canalConfig, data) if err != nil { @@ -249,6 +252,7 @@ func (c *Cluster) doWeaveDeploy(ctx context.Context, data map[string]interface{} WeaveLoopbackImage: c.SystemImages.Alpine, RBACConfig: c.Authorization.Mode, NodeSelector: c.Network.NodeSelector, + MTU: c.Network.MTU, } pluginYaml, err := c.getNetworkPluginManifest(weaveConfig, data) if err != nil { diff --git a/cluster/validation.go b/cluster/validation.go index 4b022735..73b68439 100644 --- a/cluster/validation.go +++ b/cluster/validation.go @@ -70,6 +70,9 @@ func validateNetworkOptions(c *Cluster) error { if c.Network.Plugin != NoNetworkPlugin && c.Network.Plugin != FlannelNetworkPlugin && c.Network.Plugin != CalicoNetworkPlugin && c.Network.Plugin != CanalNetworkPlugin && c.Network.Plugin != WeaveNetworkPlugin { return fmt.Errorf("Network plugin [%s] is not supported", c.Network.Plugin) } + if c.Network.Plugin == FlannelNetworkPlugin && c.Network.MTU != "" { + return fmt.Errorf("Network plugin [%s] does not support configuring MTU", FlannelNetworkPlugin) + } return nil }