in src/main/java/com/epam/aidial/service/DeployService.java [46:57]
public Mono<Boolean> undeploy(String name) {
KubernetesClient kubernetesClient = kubernetesService.deployClient();
String appName = appName(name);
return kubernetesClient.deleteKnativeService(
namespace, appName, kubernetesService.getKnativeServiceVersion())
// Knative has a default termination grace period and ignores any configured value.
// Therefore, an extra step is performed to delete pods instantly.
.flatMap(deleted -> kubernetesClient.getKnativeServicePods(namespace, appName)
.flatMapIterable(V1PodList::getItems)
.flatMap(pod -> kubernetesClient.deletePod(namespace, pod.getMetadata().getName()))
.reduce(deleted, (a, b) -> a || b));
}