func launch(c *cli.Context) { conf := config.Conf(c) resultChan := make(chan error) rClient, err := config.GetRancherClient(conf) if err != nil { log.Fatal(err) } kClient := kubernetesclient.NewClient(conf.KubernetesURL, true) rcHandler := kubernetesevents.NewHandler(rClient, kClient, kubernetesevents.RCKind) svcHandler := kubernetesevents.NewHandler(rClient, kClient, kubernetesevents.ServiceKind) handlers := []kubernetesevents.Handler{rcHandler, svcHandler} go func(rc chan error) { err := kubernetesevents.ConnectToEventStream(handlers, conf) log.Errorf("Kubernetes stream listener exited with error: %s", err) rc <- err }(resultChan) go func(rc chan error) { err := rancherevents.ConnectToEventStream(conf) log.Errorf("Rancher stream listener exited with error: %s", err) rc <- err }(resultChan) <-resultChan log.Info("Exiting.") }
func launch(c *cli.Context) { conf := config.Conf(c) resultChan := make(chan error) rClient, err := config.GetRancherClient(conf) if err != nil { log.Fatal(err) } kClient := kubernetesclient.NewClient(conf.KubernetesURL, true) svcHandler := kubernetesevents.NewHandler(rClient, kClient, kubernetesevents.ServiceKind) handlers := []kubernetesevents.Handler{svcHandler} log.Info("Watching changes for kinds: ", c.StringSlice("watch-kind")) for _, kind := range c.StringSlice("watch-kind") { handlers = append(handlers, kubernetesevents.NewChangeHandler(rClient, kClient, kind)) } go func(rc chan error) { err := kubernetesevents.ConnectToEventStream(handlers, conf) log.Errorf("Kubernetes stream listener exited with error: %s", err) rc <- err }(resultChan) go func(rc chan error) { err := rancherevents.ConnectToEventStream(conf) log.Errorf("Rancher stream listener exited with error: %s", err) rc <- err }(resultChan) go func(rc chan error) { err := healthcheck.StartHealthCheck(conf.HealthCheckPort) log.Errorf("Rancher healthcheck exited with error: %s", err) rc <- err }(resultChan) <-resultChan log.Info("Exiting.") }