blob: a3944e714ad78295d9d148ca63ffcaa7eae3b789 [file] [log] [blame]
giolekvaf89e0462020-05-02 17:47:06 +04001package main
2
3import (
4 "flag"
5
6 "k8s.io/client-go/kubernetes"
7 "k8s.io/client-go/rest"
8 "k8s.io/client-go/tools/clientcmd"
9
giolekvabc79b672020-12-16 11:47:44 +040010 "github.com/giolekva/pcloud/core/events"
giolekvaf89e0462020-05-02 17:47:06 +040011
12 "github.com/golang/glog"
13)
14
15var kubeconfig = flag.String("kubeconfig", "", "Absolute path to the kubeconfig file.")
16var apiAddr = flag.String("api_addr", "", "PCloud API server address.")
giolekva8d9f1022020-05-13 20:13:36 +040017var appManagerAddr = flag.String("app_manager_addr", "", "PCloud AppManager address.")
giolekvaf89e0462020-05-02 17:47:06 +040018var objectStoreAddr = flag.String("object_store_addr", "", "S3 compatible object store address.")
19
20func getKubeConfig() (*rest.Config, error) {
21 if *kubeconfig != "" {
22 return clientcmd.BuildConfigFromFlags("", *kubeconfig)
23 } else {
24 return rest.InClusterConfig()
25 }
26}
27
28func main() {
29 flag.Parse()
giolekva8d9f1022020-05-13 20:13:36 +040030 kubeconfig, err := getKubeConfig()
giolekvaf89e0462020-05-02 17:47:06 +040031 if err != nil {
32 glog.Fatalf("Could not initialize Kubeconfig: %v", err)
33 }
giolekva8d9f1022020-05-13 20:13:36 +040034 kube, err := kubernetes.NewForConfig(kubeconfig)
giolekvaf89e0462020-05-02 17:47:06 +040035 if err != nil {
36 glog.Fatalf("Could not create Kubernetes API client: %v", err)
37 }
giolekvaf89e0462020-05-02 17:47:06 +040038 eventStore := events.NewGraphQLClient(*apiAddr)
giolekva8d9f1022020-05-13 20:13:36 +040039 appManager := events.NewAppManagerClient(*appManagerAddr)
giolekvad2618252020-05-02 19:39:02 +040040 events.NewSingleEventAtATimeProcessor(
giolekva8d9f1022020-05-13 20:13:36 +040041 eventStore, appManager, kube, *apiAddr, *objectStoreAddr).Start()
giolekvaf89e0462020-05-02 17:47:06 +040042}