blob: 78674913561c74e6f3e112c6e3603f69f5191b0e [file] [log] [blame]
giolekva96755fa2021-10-06 21:00:00 +04001package main
2
3import (
4 "flag"
5 "time"
6
7 utilruntime "k8s.io/apimachinery/pkg/util/runtime"
giolekva5ebab802021-10-07 21:50:34 +04008 kubeinformers "k8s.io/client-go/informers"
giolekva96755fa2021-10-06 21:00:00 +04009 "k8s.io/client-go/kubernetes"
10 "k8s.io/client-go/tools/clientcmd"
11
giolekvac6859b02021-12-09 18:40:51 +040012 controllers "github.com/giolekva/pcloud/core/nebula/controller/controllers"
13 clientset "github.com/giolekva/pcloud/core/nebula/controller/generated/clientset/versioned"
14 "github.com/giolekva/pcloud/core/nebula/controller/generated/clientset/versioned/scheme"
15 informers "github.com/giolekva/pcloud/core/nebula/controller/generated/informers/externalversions"
giolekva5ebab802021-10-07 21:50:34 +040016
giolekva96755fa2021-10-06 21:00:00 +040017 nebulascheme "k8s.io/sample-controller/pkg/generated/clientset/versioned/scheme"
18)
19
20var kubeConfig = flag.String("kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.")
21var masterURL = flag.String("master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
giolekva96755fa2021-10-06 21:00:00 +040022
23func main() {
24 flag.Parse()
25 cfg, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeConfig)
26 if err != nil {
27 panic(err)
28 }
giolekva5ebab802021-10-07 21:50:34 +040029 kubeClient, err := kubernetes.NewForConfig(cfg)
giolekva96755fa2021-10-06 21:00:00 +040030 if err != nil {
31 panic(err)
32 }
33 nebulaClient := clientset.NewForConfigOrDie(cfg)
34 utilruntime.Must(nebulascheme.AddToScheme(scheme.Scheme))
giolekva5ebab802021-10-07 21:50:34 +040035 kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, time.Second*30)
giolekva96755fa2021-10-06 21:00:00 +040036 nebulaInformerFactory := informers.NewSharedInformerFactory(nebulaClient, 5*time.Second)
giolekva695960b2021-10-07 22:00:29 +040037 c := controllers.NewNebulaController(
giolekva5ebab802021-10-07 21:50:34 +040038 kubeClient,
39 nebulaClient,
40 nebulaInformerFactory.Lekva().V1().NebulaCAs(),
41 nebulaInformerFactory.Lekva().V1().NebulaNodes(),
giolekva6bb21c22021-12-29 21:31:08 +040042 kubeInformerFactory.Core().V1().Secrets())
giolekva96755fa2021-10-06 21:00:00 +040043 stopCh := make(chan struct{})
giolekva5ebab802021-10-07 21:50:34 +040044 kubeInformerFactory.Start(stopCh)
giolekva96755fa2021-10-06 21:00:00 +040045 nebulaInformerFactory.Start(stopCh)
46 if err := c.Run(1, stopCh); err != nil {
47 panic(err)
48 }
49}