func()

in pkg/service/jenkins/jenkins.go [333:378]


func (j JenkinsServiceImpl) integrateEnabledInstance(instance *jenkinsApi.Jenkins) (*jenkinsApi.Jenkins, error) {
	keycloakClient, err := j.newIntegrationKeycloakClient(instance)
	if err != nil {
		return instance, fmt.Errorf("failed to create KeycloakClient: %w", err)
	}

	keycloakRealm, err := j.newIntegrationKeycloakRealm(keycloakClient)
	if err != nil {
		return instance, fmt.Errorf("failed to create KeycloakRealm: %w", err)
	}

	keycloak, err := j.newIntegrationKeycloak(keycloakClient, keycloakRealm)
	if err != nil {
		return instance, fmt.Errorf("failed to create Keycloak: %w", err)
	}

	directoryPath, err := platformHelper.CreatePathToTemplateDirectory(DefaultTemplatesDirectory)
	if err != nil {
		return instance, fmt.Errorf("failed to create path to template directory: %w", err)
	}

	keycloakCfgFilePath := fmt.Sprintf("%s/%s", directoryPath, keycloakConfigTemplateName)

	jenkinsScriptData, err := j.newIntegrationJenkinsScriptData(instance, keycloak, keycloakRealm, keycloakClient)
	if err != nil {
		return instance, fmt.Errorf("failed to create JenkinsScriptData: %w", err)
	}

	scriptContext, err := platformHelper.ParseTemplate(jenkinsScriptData, keycloakCfgFilePath, keycloakConfigTemplateName)
	if err != nil {
		return instance, fmt.Errorf("failed to parse template: %w", err)
	}

	configKeycloakName := fmt.Sprintf(configMapStringFormat, instance.Name, "config-keycloak")
	configMapData := map[string]string{defaultScriptConfigMapKey: scriptContext.String()}

	if _, err = j.platformService.CreateConfigMap(instance, configKeycloakName, configMapData); err != nil {
		return instance, fmt.Errorf("failed to create config map: %w", err)
	}

	if _, err = j.platformService.CreateJenkinsScript(instance.Namespace, configKeycloakName, false); err != nil {
		return instance, fmt.Errorf("failed to create jenkins script: %w", err)
	}

	return instance, nil
}