// RunSDNController runs openshift-sdn if the said network plugin is provided func (c *MasterConfig) RunSDNController() { registry := osdn.NewOsdnRegistryInterface(c.SDNControllerClients()) switch c.Options.NetworkConfig.NetworkPluginName { case flatsdn.NetworkPluginName(): flatsdn.Master(registry, c.Options.NetworkConfig.ClusterNetworkCIDR, c.Options.NetworkConfig.HostSubnetLength, c.Options.NetworkConfig.ServiceNetworkCIDR) case multitenant.NetworkPluginName(): multitenant.Master(registry, c.Options.NetworkConfig.ClusterNetworkCIDR, c.Options.NetworkConfig.HostSubnetLength, c.Options.NetworkConfig.ServiceNetworkCIDR) } }
func Node(osClient *osclient.Client, kClient *kclient.Client, hostname string, publicIP string, ready chan struct{}, mtu uint) { osdnInterface := osdn.NewOsdnRegistryInterface(osClient, kClient) kc, err := ovssubnet.NewKubeController(&osdnInterface, hostname, publicIP, ready) if err != nil { glog.Fatalf("SDN initialization failed: %v", err) } err = kc.StartNode(false, false, mtu) if err != nil { glog.Fatalf("SDN Node failed: %v", err) } }
func Node(osClient *osclient.Client, kClient *kclient.Client, hostname string, publicIP string, ready chan struct{}, plugin knetwork.NetworkPlugin, mtu uint) { mp, ok := plugin.(*MultitenantPlugin) if !ok { glog.Fatalf("Failed to type cast provided plugin to a multitenant type plugin") } osdnInterface := osdn.NewOsdnRegistryInterface(osClient, kClient) kc, err := ovssubnet.NewMultitenantController(&osdnInterface, hostname, publicIP, ready) if err != nil { glog.Fatalf("SDN initialization failed: %v", err) } mp.OvsController = kc err = kc.StartNode(false, false, mtu) if err != nil { glog.Fatalf("SDN Node failed: %v", err) } }
func Master(osClient *osclient.Client, kClient *kclient.Client, clusterNetworkCIDR string, clusterBitsPerSubnet uint, serviceNetworkCIDR string) { osdnInterface := osdn.NewOsdnRegistryInterface(osClient, kClient) // get hostname from the gateway output, err := exec.New().Command("hostname", "-f").CombinedOutput() if err != nil { glog.Fatalf("SDN initialization failed: %v", err) } host := strings.TrimSpace(string(output)) kc, err := ovssubnet.NewKubeController(&osdnInterface, host, "", nil) if err != nil { glog.Fatalf("SDN initialization failed: %v", err) } err = kc.StartMaster(false, clusterNetworkCIDR, clusterBitsPerSubnet, serviceNetworkCIDR) if err != nil { glog.Fatalf("SDN initialization failed: %v", err) } }
func RunSDNController(config *kubernetes.NodeConfig, nodeConfig configapi.NodeConfig) kubernetes.FilteringEndpointsConfigHandler { oclient, _, err := configapi.GetOpenShiftClient(nodeConfig.MasterKubeConfig) if err != nil { glog.Fatal("Failed to get kube client for SDN") } registry := osdn.NewOsdnRegistryInterface(oclient, config.Client) switch nodeConfig.NetworkConfig.NetworkPluginName { case flatsdn.NetworkPluginName(): ch := make(chan struct{}) config.KubeletConfig.StartUpdates = ch go flatsdn.Node(registry, nodeConfig.NodeName, nodeConfig.NodeIP, ch, nodeConfig.NetworkConfig.MTU) case multitenant.NetworkPluginName(): ch := make(chan struct{}) config.KubeletConfig.StartUpdates = ch plugin := multitenant.GetKubeNetworkPlugin() config.KubeletConfig.NetworkPlugins = append(config.KubeletConfig.NetworkPlugins, plugin) go multitenant.Node(registry, nodeConfig.NodeName, nodeConfig.NodeIP, ch, plugin, nodeConfig.NetworkConfig.MTU) return registry } return nil }