func Make()

in controller/merge_request/controller.go [52:99]


func Make(
	mgr ctrl.Manager,
	logger controller.Logger,
	cnf *config.Settings,
	gerrit gerritService.ServiceInterface,
	cbService codebaseSvc.ServiceInterface,
	gitServerService gitserver.ServiceInterface,
	jenkinsService jenkins.ServiceInterface,
	appCache *cache.Cache,
) error {
	c := Controller{
		mgr:              mgr,
		logger:           logger,
		k8sClient:        mgr.GetClient(),
		cnf:              cnf,
		gerrit:           gerrit,
		appCache:         appCache,
		codebaseService:  cbService,
		gitServerService: gitServerService,
		jenkinsService:   jenkinsService,
	}

	vf, err := registry.MakeVersionFilter(cnf.RegistryVersionFilter)
	if err != nil {
		return fmt.Errorf("unable to init version filter, %w", err)
	}
	c.versionFilter = vf

	if err := ctrl.NewControllerManagedBy(mgr).
		For(
			&gerritService.GerritMergeRequest{},
			builder.WithPredicates(
				predicate.Funcs{
					UpdateFunc: isSpecUpdated,
				},
			),
		).
		WithOptions(
			k8sController.Options{
				MaxConcurrentReconciles: 1,
			},
		).
		Complete(&c); err != nil {
		return fmt.Errorf("unable to create controller, err: %w", err)
	}

	return nil
}