mirror of
https://github.com/rancher/rke.git
synced 2025-09-18 16:36:41 +00:00
Add user-configurable images
Refactor configuration defaults Add comments to config Add configurable utility images Add configurable network plugin images Add configurable kubedns images
This commit is contained in:
@@ -11,9 +11,20 @@ import (
|
||||
|
||||
const (
|
||||
NetworkPluginResourceName = "rke-network-plugin"
|
||||
FlannelNetworkPlugin = "flannel"
|
||||
CalicoNetworkPlugin = "calico"
|
||||
CanalNetworkPlugin = "canal"
|
||||
|
||||
FlannelNetworkPlugin = "flannel"
|
||||
FlannelImage = "flannel_image"
|
||||
FlannelCNIImage = "flannel_cni_image"
|
||||
|
||||
CalicoNetworkPlugin = "calico"
|
||||
CalicoNodeImage = "calico_node_image"
|
||||
CalicoCNIImage = "calico_cni_image"
|
||||
CalicoControllersImages = "calico_controllers_image"
|
||||
|
||||
CanalNetworkPlugin = "canal"
|
||||
CanalNodeImage = "canal_node_image"
|
||||
CanalCNIImage = "canal_cni_image"
|
||||
CanalFlannelImage = "canal_flannel_image"
|
||||
)
|
||||
|
||||
func (c *Cluster) DeployNetworkPlugin() error {
|
||||
@@ -31,30 +42,62 @@ func (c *Cluster) DeployNetworkPlugin() error {
|
||||
}
|
||||
|
||||
func (c *Cluster) doFlannelDeploy() error {
|
||||
pluginYaml := network.GetFlannelManifest(c.ClusterCIDR)
|
||||
pluginYaml := network.GetFlannelManifest(c.ClusterCIDR, c.Network.Options[FlannelImage], c.Network.Options[FlannelCNIImage])
|
||||
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
|
||||
calicoConfig := map[string]string{
|
||||
network.EtcdEndpoints: services.GetEtcdConnString(c.EtcdHosts),
|
||||
network.APIRoot: "https://127.0.0.1:6443",
|
||||
network.ClientCert: pki.KubeNodeCertPath,
|
||||
network.ClientKey: pki.KubeNodeKeyPath,
|
||||
network.ClientCA: pki.CACertPath,
|
||||
network.KubeCfg: pki.KubeNodeConfigPath,
|
||||
network.ClusterCIDR: c.ClusterCIDR,
|
||||
network.CNIImage: c.Network.Options[CalicoCNIImage],
|
||||
network.NodeImage: c.Network.Options[CalicoNodeImage],
|
||||
network.ControllersImage: c.Network.Options[CalicoControllersImages],
|
||||
}
|
||||
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
|
||||
canalConfig := map[string]string{
|
||||
network.ClientCert: pki.KubeNodeCertPath,
|
||||
network.ClientKey: pki.KubeNodeKeyPath,
|
||||
network.ClientCA: pki.CACertPath,
|
||||
network.KubeCfg: pki.KubeNodeConfigPath,
|
||||
network.ClusterCIDR: c.ClusterCIDR,
|
||||
network.NodeImage: c.Network.Options[CanalNodeImage],
|
||||
network.CNIImage: c.Network.Options[CanalCNIImage],
|
||||
network.FlannelImage: c.Network.Options[CanalFlannelImage],
|
||||
}
|
||||
pluginYaml := network.GetCanalManifest(canalConfig)
|
||||
return c.doAddonDeploy(pluginYaml, NetworkPluginResourceName)
|
||||
}
|
||||
|
||||
func (c *Cluster) setClusterNetworkDefaults() {
|
||||
setDefaultIfEmpty(&c.Network.Plugin, DefaultNetworkPlugin)
|
||||
|
||||
if c.Network.Options == nil {
|
||||
// don't break if the user didn't define options
|
||||
c.Network.Options = make(map[string]string)
|
||||
}
|
||||
switch {
|
||||
case c.Network.Plugin == FlannelNetworkPlugin:
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, FlannelImage, DefaultFlannelImage)
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, FlannelCNIImage, DefaultFlannelCNIImage)
|
||||
|
||||
case c.Network.Plugin == CalicoNetworkPlugin:
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, CalicoCNIImage, DefaultCalicoCNIImage)
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, CalicoNodeImage, DefaultCalicoNodeImage)
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, CalicoControllersImages, DefaultCalicoControllersImage)
|
||||
|
||||
case c.Network.Plugin == CanalNetworkPlugin:
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, CanalCNIImage, DefaultCanalCNIImage)
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, CanalNodeImage, DefaultCanalNodeImage)
|
||||
setDefaultIfEmptyMapValue(c.Network.Options, CanalFlannelImage, DefaultCanalFlannelImage)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user