public Mono build()

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));
    }