events-processor: with single event at a time implementation
diff --git a/events/cmd/main.go b/events/cmd/main.go
new file mode 100644
index 0000000..09db5a9
--- /dev/null
+++ b/events/cmd/main.go
@@ -0,0 +1,41 @@
+package main
+
+import (
+ "flag"
+
+ "k8s.io/client-go/kubernetes"
+ "k8s.io/client-go/rest"
+ "k8s.io/client-go/tools/clientcmd"
+
+ "github.com/giolekva/pcloud/events"
+
+ "github.com/golang/glog"
+)
+
+var kubeconfig = flag.String("kubeconfig", "", "Absolute path to the kubeconfig file.")
+var apiAddr = flag.String("api_addr", "", "PCloud API server address.")
+var objectStoreAddr = flag.String("object_store_addr", "", "S3 compatible object store address.")
+
+func getKubeConfig() (*rest.Config, error) {
+ if *kubeconfig != "" {
+ return clientcmd.BuildConfigFromFlags("", *kubeconfig)
+ } else {
+ return rest.InClusterConfig()
+ }
+}
+
+func main() {
+ flag.Parse()
+ config, err := getKubeConfig()
+ if err != nil {
+ glog.Fatalf("Could not initialize Kubeconfig: %v", err)
+ }
+ clientset, err := kubernetes.NewForConfig(config)
+ if err != nil {
+ glog.Fatalf("Could not create Kubernetes API client: %v", err)
+ }
+ pods := clientset.CoreV1().Pods("default")
+ eventStore := events.NewGraphQLClient(*apiAddr)
+ go events.NewSingleEventAtATimeProcessor(
+ eventStore, pods, *apiAddr, *objectStoreAddr).Start()
+}