| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 1 | package main |
| 2 | |
| 3 | import ( |
| 4 | "flag" |
| 5 | "time" |
| 6 | |
| 7 | utilruntime "k8s.io/apimachinery/pkg/util/runtime" |
| giolekva | 5ebab80 | 2021-10-07 21:50:34 +0400 | [diff] [blame] | 8 | kubeinformers "k8s.io/client-go/informers" |
| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 9 | "k8s.io/client-go/kubernetes" |
| 10 | "k8s.io/client-go/tools/clientcmd" |
| 11 | |
| giolekva | c6859b0 | 2021-12-09 18:40:51 +0400 | [diff] [blame] | 12 | 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" |
| giolekva | 5ebab80 | 2021-10-07 21:50:34 +0400 | [diff] [blame] | 16 | |
| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 17 | nebulascheme "k8s.io/sample-controller/pkg/generated/clientset/versioned/scheme" |
| 18 | ) |
| 19 | |
| 20 | var kubeConfig = flag.String("kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.") |
| 21 | var masterURL = flag.String("master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.") |
| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 22 | |
| 23 | func main() { |
| 24 | flag.Parse() |
| 25 | cfg, err := clientcmd.BuildConfigFromFlags(*masterURL, *kubeConfig) |
| 26 | if err != nil { |
| 27 | panic(err) |
| 28 | } |
| giolekva | 5ebab80 | 2021-10-07 21:50:34 +0400 | [diff] [blame] | 29 | kubeClient, err := kubernetes.NewForConfig(cfg) |
| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 30 | if err != nil { |
| 31 | panic(err) |
| 32 | } |
| 33 | nebulaClient := clientset.NewForConfigOrDie(cfg) |
| 34 | utilruntime.Must(nebulascheme.AddToScheme(scheme.Scheme)) |
| giolekva | 5ebab80 | 2021-10-07 21:50:34 +0400 | [diff] [blame] | 35 | kubeInformerFactory := kubeinformers.NewSharedInformerFactory(kubeClient, time.Second*30) |
| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 36 | nebulaInformerFactory := informers.NewSharedInformerFactory(nebulaClient, 5*time.Second) |
| giolekva | 695960b | 2021-10-07 22:00:29 +0400 | [diff] [blame] | 37 | c := controllers.NewNebulaController( |
| giolekva | 5ebab80 | 2021-10-07 21:50:34 +0400 | [diff] [blame] | 38 | kubeClient, |
| 39 | nebulaClient, |
| 40 | nebulaInformerFactory.Lekva().V1().NebulaCAs(), |
| 41 | nebulaInformerFactory.Lekva().V1().NebulaNodes(), |
| giolekva | 6bb21c2 | 2021-12-29 21:31:08 +0400 | [diff] [blame] | 42 | kubeInformerFactory.Core().V1().Secrets()) |
| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 43 | stopCh := make(chan struct{}) |
| giolekva | 5ebab80 | 2021-10-07 21:50:34 +0400 | [diff] [blame] | 44 | kubeInformerFactory.Start(stopCh) |
| giolekva | 96755fa | 2021-10-06 21:00:00 +0400 | [diff] [blame] | 45 | nebulaInformerFactory.Start(stopCh) |
| 46 | if err := c.Run(1, stopCh); err != nil { |
| 47 | panic(err) |
| 48 | } |
| 49 | } |