| 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" |
| 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 | |
| 18 | var kubeConfig = flag.String("kubeconfig", "", "Path to a kubeconfig. Only required if out-of-cluster.") |
| 19 | var masterURL = flag.String("master", "", "The address of the Kubernetes API server. Overrides any value in kubeconfig. Only required if out-of-cluster.") |
| 20 | var nebulaCert = flag.String("nebula-cert", "", "Path to the nebula-cert binary.") |
| 21 | |
| 22 | func 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 | } |