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
}