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:
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user