From 16a145bef49b81ae21ce18fa08de4b6a46fa7a11 Mon Sep 17 00:00:00 2001 From: ston1th Date: Thu, 12 Nov 2020 02:13:01 +0100 Subject: [PATCH] fixed gitignore --- .gitignore | 2 +- cmd/vipman/main.go | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 cmd/vipman/main.go diff --git a/.gitignore b/.gitignore index ef8a42c..50546b5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ data/ -vipman +/vipman diff --git a/cmd/vipman/main.go b/cmd/vipman/main.go new file mode 100644 index 0000000..1f8dc6f --- /dev/null +++ b/cmd/vipman/main.go @@ -0,0 +1,62 @@ +package main + +import ( + "context" + "flag" + "os" + "os/signal" + "syscall" + "time" + + "git.giftfish.de/ston1th/vipman/pkg/cluster" + "git.giftfish.de/ston1th/vipman/pkg/config" + "k8s.io/klog" + "k8s.io/klog/klogr" +) + +var ( + configFile string +) + +func main() { + klog.InitFlags(nil) + flag.StringVar(&configFile, "config", "vipman.yaml", "vipman config file") + flag.Parse() + cfg, err := config.ParseFile(configFile) + if err != nil { + klog.Fatalf("Initialization failed: %s", err) + } + c, err := cluster.InitCluster(cluster.LeaderCallbacks{ + OnStartedLeading: func(ctx context.Context) { + ticker := time.NewTicker(time.Second * 10) + for { + select { + case <-ctx.Done(): + return + case <-ticker.C: + } + klog.Infof("[%s] leading", cfg.LocalPeer.ID) + } + }, + OnStoppedLeading: func() { + klog.Infof("[%s] stopped leading", cfg.LocalPeer.ID) + }, + OnNewLeader: func(id string) { + klog.Infof("[%s] new leader: %s", cfg.LocalPeer.ID, id) + }, + }) + if err != nil { + klog.Fatalf("Initialization failed: %s", err) + } + log := klogr.New() + go func() { + err = c.StartRaftCluster(log, cfg) + if err != nil { + klog.Fatalf("Initialization failed: %s", err) + } + }() + sigs := make(chan os.Signal) + signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) + <-sigs + c.Stop() +}