-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
37 lines (29 loc) · 995 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package main
import (
"github.com/notrainy/operator-learning/config"
"github.com/notrainy/operator-learning/external"
"github.com/notrainy/operator-learning/tools"
"k8s.io/klog/v2"
)
func main() {
ctx := tools.SetupSignalHandler()
// logs
klog.InitFlags(nil)
logger := klog.FromContext(ctx)
config.InitConfig()
// init the clientset by out-of-cluster kube config
external.Init(false)
// init the informers by clientset
external.InitInformers()
// new controller
controller := external.NewController(ctx, external.GetK8sClientSet(), external.GetCustomClientSet(),
external.GetKubeInformerFactory().Apps().V1().Deployments(),
external.GetCustomInformerFactory().Stable().V1beta1().Redises())
// start the informer
external.GetKubeInformerFactory().Start(ctx.Done())
external.GetCustomInformerFactory().Start(ctx.Done())
if err := controller.Run(ctx, 2); err != nil {
logger.Error(err, "error running controller")
klog.FlushAndExit(klog.ExitFlushTimeout, 1)
}
}