From 4b4a6757880d549e22d7ab88d5b2a996622eef94 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Thu, 23 May 2024 11:47:15 -0400 Subject: [PATCH] CKS delete fails when external nodes are present * CKS delete fails when external nodes are present * address comment --- .../actionworkers/KubernetesClusterDestroyWorker.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterDestroyWorker.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterDestroyWorker.java index f8ed5df0cd0..99d894b2e92 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterDestroyWorker.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/actionworkers/KubernetesClusterDestroyWorker.java @@ -246,6 +246,12 @@ public class KubernetesClusterDestroyWorker extends KubernetesClusterResourceMod } if (cleanupNetwork) { // if network has additional VM, cannot proceed with cluster destroy NetworkVO network = networkDao.findById(kubernetesCluster.getNetworkId()); + List externalNodes = clusterVMs.stream().filter(KubernetesClusterVmMapVO::isExternalNode).collect(Collectors.toList()); + if (!externalNodes.isEmpty()) { + String errMsg = String.format("Failed to delete kubernetes cluster %s as there are %s external node(s) present. Please remove the external node(s) from the cluster (and network) or delete them before deleting the cluster.", kubernetesCluster.getName(), externalNodes.size()); + LOGGER.error(errMsg); + throw new CloudRuntimeException(errMsg); + } if (network != null) { List networkVMs = vmInstanceDao.listNonRemovedVmsByTypeAndNetwork(network.getId(), VirtualMachine.Type.User); if (networkVMs.size() > clusterVMs.size()) {