in src/main/java/com/epam/aidial/service/BuildService.java [36:53]
public Mono<String> build(BuildParameters params) {
KubernetesClient kubernetesClient = kubernetesService.buildClient();
return Mono.fromCallable(() -> templateService.dialAuthSecretConfig(params.name, params.apiKey, params.jwt))
.flatMap(secret -> kubernetesClient.createSecret(namespace, secret))
.then(Mono.fromCallable(() -> templateService.buildJobConfig(params.name, params.sources, params.runtime)))
.flatMap(job -> kubernetesClient.createJob(namespace, job, imageBuildTimeoutSec))
.onErrorResume(e -> {
String jobName = buildJobName(params.name);
return kubernetesClient.getJobPods(namespace, jobName)
.flatMap(this::extractErrorFromLog)
.flatMap(error -> Mono.error(new RuntimeException(error)))
.then(Mono.error(e));
})
.then(kubernetesClient.deleteSecret(namespace, dialAuthSecretName(params.name)))
.then(kubernetesClient.deleteJob(namespace, buildJobName(params.name)))
.thenReturn(registryService.fullImageName(params.name));
}