1
0
mirror of https://github.com/rancher/rke.git synced 2025-08-31 22:46:25 +00:00

Add initial support for additional network plugins

Refactor DeployNetworkPlugin()
Add calico network plugin
Add canal network plugin
This commit is contained in:
moelsayed
2017-11-22 01:49:30 +02:00
parent 0b5e65274c
commit 42b22e69b0
7 changed files with 776 additions and 13 deletions

View File

@@ -1,7 +1,11 @@
package cluster
import (
"fmt"
"github.com/rancher/rke/network"
"github.com/rancher/rke/pki"
"github.com/rancher/rke/services"
"github.com/sirupsen/logrus"
)
@@ -11,12 +15,43 @@ const (
func (c *Cluster) DeployNetworkPlugin() error {
logrus.Infof("[network] Setting up network plugin: %s", c.Network.Plugin)
pluginYaml := network.GetFlannelManifest(c.ClusterCIDR)
if err := c.doAddonDeploy(pluginYaml, NetworkPluginResourceName); err != nil {
return err
switch c.Network.Plugin {
case "flannel":
return c.doFlannelDeploy()
case "calico":
return c.doCalicoDeploy()
case "canal":
return c.doCanalDeploy()
default:
return fmt.Errorf("[network] Unsupported network plugin: %s", c.Network.Plugin)
}
logrus.Infof("[network] Network plugin deployed successfully..")
return nil
}
func (c *Cluster) doFlannelDeploy() error {
pluginYaml := network.GetFlannelManifest(c.ClusterCIDR)
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
}
func (c *Cluster) doCalicoDeploy() error {
calicoConfig := make(map[string]string)
calicoConfig["etcdEndpoints"] = services.GetEtcdConnString(c.EtcdHosts)
calicoConfig["apiRoot"] = "https://127.0.0.1:6443"
calicoConfig["clientCrt"] = pki.KubeNodeCertPath
calicoConfig["clientKey"] = pki.KubeNodeKeyPath
calicoConfig["clientCA"] = pki.CACertPath
calicoConfig["kubeCfg"] = pki.KubeNodeConfigPath
calicoConfig["clusterCIDR"] = c.ClusterCIDR
pluginYaml := network.GetCalicoManifest(calicoConfig)
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
}
func (c *Cluster) doCanalDeploy() error {
canalConfig := make(map[string]string)
canalConfig["clientCrt"] = pki.KubeNodeCertPath
canalConfig["clientKey"] = pki.KubeNodeKeyPath
canalConfig["clientCA"] = pki.CACertPath
canalConfig["kubeCfg"] = pki.KubeNodeConfigPath
canalConfig["clusterCIDR"] = c.ClusterCIDR
pluginYaml := network.GetCanalManifest(calicoConfig)
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
}