blob: dd62db08715f073bf3ed844938ca57ef1e610f3a [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"
8 "k8s.io/client-go/kubernetes"
9 "k8s.io/client-go/tools/clientcmd"
10
11 controllers "github.com/giolekva/pcloud/core/nebula/controllers"
12 clientset "github.com/giolekva/pcloud/core/nebula/generated/clientset/versioned"
13 "github.com/giolekva/pcloud/core/nebula/generated/clientset/versioned/scheme"
14 informers "github.com/giolekva/pcloud/core/nebula/generated/informers/externalversions"
15 nebulascheme "k8s.io/sample-controller/pkg/generated/clientset/versioned/scheme"
16)
17
18var kubeConfig = flag.String("kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.")
19var masterURL = flag.String("master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.")
20var nebulaCert = flag.String("nebula-cert", "", "Path to the nebula-cert binary.")
21
22func main() {
23 flag.Parse()
24 cfg, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeConfig)
25 if err != nil {
26 panic(err)
27 }
28 kc, err := kubernetes.NewForConfig(cfg)
29 if err != nil {
30 panic(err)
31 }
32 nebulaClient := clientset.NewForConfigOrDie(cfg)
33 utilruntime.Must(nebulascheme.AddToScheme(scheme.Scheme))
34 nebulaInformerFactory := informers.NewSharedInformerFactory(nebulaClient, 5*time.Second)
35 c := controllers.NewCAController(kc, nebulaClient, nebulaInformerFactory, *nebulaCert)
36 stopCh := make(chan struct{})
37 nebulaInformerFactory.Start(stopCh)
38 if err := c.Run(1, stopCh); err != nil {
39 panic(err)
40 }
41}