kubelatte-ce

Форк
2
Форк от sbertech/kubelatte-ce
/
start_controllers.go 
78 строк · 2.1 Кб
1
package leader
2

3
import (
4
	"context"
5
	"gitverse.ru/synapse/kubelatte/pkg/observability/logger"
6
	"gitverse.ru/synapse/kubelatte/pkg/operator/utils"
7
	"gitverse.ru/synapse/kubelatte/pkg/util"
8
	"os"
9
	ctrl "sigs.k8s.io/controller-runtime"
10
	"sigs.k8s.io/controller-runtime/pkg/webhook"
11
	"time"
12
)
13

14
func startReconciler(reconciler utils.ReconcilerInterface) {
15
	log := logger.FromContext(context.Background())
16
	if err := reconciler.SetupWithManager(Mgr); err != nil {
17
		log.Fatalf("Unable to create reconciler: %s", err.Error())
18
		os.Exit(1)
19
	}
20
}
21

22
func startNamespaceReconciler(ctx context.Context, reconciler utils.ReconcilerInterface) {
23
	log := logger.FromContext(context.Background())
24
	opt := ctrl.Options{
25
		Logger:             Mgr.GetLogger(),
26
		Scheme:             Mgr.GetScheme(),
27
		WebhookServer:      webhook.NewServer(webhook.Options{Port: 9444}),
28
		MetricsBindAddress: "0",
29
	}
30

31
	clusterMgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), opt)
32
	if err != nil {
33
		log.Fatalf("Problem running namespace manager: %s", err.Error())
34
		os.Exit(1)
35
	}
36

37
	startReconciler(reconciler)
38

39
	go func() {
40
		if err := clusterMgr.Start(ctx); err != nil {
41
			log.Fatalf("Problem running namespace manager: %s", err.Error())
42
			os.Exit(1)
43
		}
44
		log.Debug("Starting cluster namespace manager")
45
	}()
46
}
47

48
func startTriggerInstanceReconciler(ctx context.Context, reconciler utils.ReconcilerInterface) {
49
	log := logger.FromContext(context.Background())
50
	time.Sleep(time.Second * 5) // hack for order controller run, must refactor
51

52
	if util.IsCreationInClusterMode() {
53
		opt := ctrl.Options{
54
			Logger:             Mgr.GetLogger(),
55
			Scheme:             Mgr.GetScheme(),
56
			WebhookServer:      webhook.NewServer(webhook.Options{Port: 9442}),
57
			MetricsBindAddress: "0",
58
		}
59

60
		clusterMgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), opt)
61
		if err != nil {
62
			log.Fatalf("Problem running ti manager: %s", err.Error())
63
			os.Exit(1)
64
		}
65

66
		startReconciler(reconciler)
67

68
		go func() {
69
			if err := clusterMgr.Start(ctx); err != nil {
70
				log.Fatalf("Problem running ti manager: %s", err.Error())
71
				os.Exit(1)
72
			}
73
			log.Debug("Starting cluster ti manager")
74
		}()
75
	} else {
76
		startReconciler(reconciler)
77
	}
78
}
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.