in pkg/service/jenkins/jenkins.go [103:150]
func (j JenkinsServiceImpl) newIntegrationKeycloakClient(instance *jenkinsApi.Jenkins) (*keycloakApi.KeycloakClient, error) {
keycloakClient := keycloakApi.KeycloakClient{
ObjectMeta: metav1.ObjectMeta{
Name: instance.Name,
Namespace: instance.Namespace,
},
Spec: keycloakApi.KeycloakClientSpec{
ClientId: instance.Name,
Public: !instance.Spec.KeycloakSpec.IsPrivate,
Secret: instance.Spec.KeycloakSpec.SecretName,
WebUrl: instance.Spec.ExternalURL,
RealmRoles: &[]keycloakApi.RealmRole{
{
Name: "jenkins-administrators",
Composite: "administrator",
},
{
Name: "jenkins-users",
Composite: "developer",
},
},
},
}
if keycloakClient.Spec.WebUrl == "" {
externalURL, err := j.getExternalUrl(instance)
if err != nil {
return nil, fmt.Errorf("failed to get route from cluster: %w", err)
}
keycloakClient.Spec.WebUrl = externalURL
}
if instance.Spec.KeycloakSpec.Realm != "" {
keycloakClient.Spec.TargetRealm = instance.Spec.KeycloakSpec.Realm
}
if err := j.platformService.CreateKeycloakClient(&keycloakClient); err != nil {
return nil, fmt.Errorf("failed to create Keycloak Client data: %w", err)
}
keycloakClient, err := j.platformService.GetKeycloakClient(instance.Name, instance.Namespace)
if err != nil {
return nil, fmt.Errorf("failed to get Keycloak Client CR: %w", err)
}
return &keycloakClient, nil
}