func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) error { ccClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) go clustercontroller.NewclusterController(ccClientset, s.ClusterMonitorPeriod.Duration).Run() dns, err := dnsprovider.InitDnsProvider(s.DnsProvider, s.DnsConfigFile) if err != nil { glog.Fatalf("Cloud provider could not be initialized: %v", err) } scClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, servicecontroller.UserAgentName)) servicecontroller := servicecontroller.New(scClientset, dns, s.FederationName, s.ZoneName) if err := servicecontroller.Run(s.ConcurrentServiceSyncs, wait.NeverStop); err != nil { glog.Errorf("Failed to start service controller: %v", err) } select {} }
func TestUpdateClusterStatusOK(t *testing.T) { clusterName := "foobarCluster" // create dummy httpserver testClusterServer := httptest.NewServer(createHttptestFakeHandlerForCluster(true)) defer testClusterServer.Close() federationCluster := newCluster(clusterName, testClusterServer.URL) federationClusterList := newClusterList(federationCluster) testFederationServer := httptest.NewServer(createHttptestFakeHandlerForFederation(federationClusterList, true)) defer testFederationServer.Close() restClientCfg, err := clientcmd.BuildConfigFromFlags(testFederationServer.URL, "") if err != nil { t.Errorf("Failed to build client config") } federationClientSet := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) manager := NewclusterController(federationClientSet, 5) err = manager.UpdateClusterStatus() if err != nil { t.Errorf("Failed to Update Cluster Status: %v", err) } clusterStatus, found := manager.clusterClusterStatusMap[clusterName] if !found { t.Errorf("Failed to Update Cluster Status") } else { if (clusterStatus.Conditions[1].Status != v1.ConditionFalse) || (clusterStatus.Conditions[1].Type != federation_v1alpha1.ClusterOffline) { t.Errorf("Failed to Update Cluster Status") } } }
func TestUpdateClusterStatusOK(t *testing.T) { clusterName := "foobarCluster" // create dummy httpserver testClusterServer := httptest.NewServer(createHttptestFakeHandlerForCluster(true)) defer testClusterServer.Close() federationCluster := newCluster(clusterName, testClusterServer.URL) federationClusterList := newClusterList(federationCluster) testFederationServer := httptest.NewServer(createHttptestFakeHandlerForFederation(federationClusterList, true)) defer testFederationServer.Close() restClientCfg, err := clientcmd.BuildConfigFromFlags(testFederationServer.URL, "") if err != nil { t.Errorf("Failed to build client config") } federationClientSet := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) // Override KubeconfigGetterForCluster to avoid having to setup service accounts and mount files with secret tokens. originalGetter := controller_util.KubeconfigGetterForCluster controller_util.KubeconfigGetterForCluster = func(c *federation_v1beta1.Cluster) clientcmd.KubeconfigGetter { return func() (*clientcmdapi.Config, error) { return &clientcmdapi.Config{}, nil } } manager := NewclusterController(federationClientSet, 5) err = manager.UpdateClusterStatus() if err != nil { t.Errorf("Failed to Update Cluster Status: %v", err) } clusterStatus, found := manager.clusterClusterStatusMap[clusterName] if !found { t.Errorf("Failed to Update Cluster Status") } else { if (clusterStatus.Conditions[1].Status != v1.ConditionFalse) || (clusterStatus.Conditions[1].Type != federation_v1beta1.ClusterOffline) { t.Errorf("Failed to Update Cluster Status") } } // Reset KubeconfigGetterForCluster controller_util.KubeconfigGetterForCluster = originalGetter }
func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) error { federationClientSet := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "cluster-controller")) go clustercontroller.NewclusterController(federationClientSet, s.ClusterMonitorPeriod.Duration).Run() select {} }