in main.go [177:249]
func initServices(sch *runtime.Scheme, restConf *rest.Config, appConf *config.Settings, logger *zap.Logger) (*config.Services, error) {
if appConf.Mock != "" {
return mocks.InitServices(appConf), nil
}
var err error
serviceItems := config.Services{}
serviceItems.EDPComponent, err = edpComponent.Make(sch, restConf, appConf.Namespace)
if err != nil {
return nil, fmt.Errorf("unable to init edp component service, %w", err)
}
serviceItems.Codebase, err = codebase.Make(sch, restConf, appConf.Namespace)
if err != nil {
return nil, fmt.Errorf("unable to init codebase service, %w", err)
}
serviceItems.K8S, err = k8s.Make(restConf, appConf.Namespace)
if err != nil {
return nil, fmt.Errorf("unable to init k8s service, %w", err)
}
serviceItems.Jenkins, err = jenkins.Make(sch, restConf, serviceItems.K8S,
jenkins.Config{Namespace: appConf.Namespace, APIUrl: appConf.JenkinsAPIURL,
AdminSecretName: appConf.JenkinsAdminSecretName})
if err != nil {
return nil, fmt.Errorf("unable to init jenkins service, %w", err)
}
serviceItems.OpenShift, err = openshift.Make(restConf, serviceItems.K8S)
if err != nil {
return nil, fmt.Errorf("unable to init open shift service, %w", err)
}
serviceItems.Gerrit, err = gerrit.Make(sch, restConf,
gerrit.Config{Namespace: appConf.Namespace, GerritAPIUrlTemplate: appConf.GerritAPIUrlTemplate,
RootGerritName: appConf.RootGerritName})
if err != nil {
return nil, fmt.Errorf("unable to create gerrit service, %w", err)
}
serviceItems.GitServer, err = gitserver.New(sch, restConf, appConf.Namespace)
if err != nil {
return nil, fmt.Errorf("failed to create gitServer service: %w", err)
}
serviceItems.Keycloak, err = keycloak.Make(sch, restConf, appConf.UsersNamespace)
if err != nil {
return nil, fmt.Errorf("unable to create keycloak service, %w", err)
}
serviceItems.Vault, err = vault.Make(appConf.VaultConfig(), serviceItems.K8S)
if err != nil {
return nil, fmt.Errorf("unable to init vault service, %w", err)
}
serviceItems.Cache = cache.New(time.Hour, time.Minute)
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
go exitWait(sigs, serviceItems.Cache)
gob.Register([]registry.CachedFile{})
if err := serviceItems.Cache.LoadFile(cachePath); err != nil {
logger.Warn("unable to load cache")
}
serviceItems.PermService = permissions.Make(serviceItems.Codebase, serviceItems.K8S)
return &serviceItems, nil
}