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 41de39fddc2a..c9f42d87134e 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 @@ -37,6 +37,7 @@ import com.cloud.kubernetes.cluster.KubernetesClusterVmMap; import com.cloud.kubernetes.cluster.KubernetesClusterVmMapVO; import com.cloud.network.IpAddress; +import com.cloud.network.Network; import com.cloud.network.dao.NetworkVO; import com.cloud.network.rules.FirewallRule; import com.cloud.user.Account; @@ -187,6 +188,13 @@ private void validateClusterVMsDestroyed() { } } + private void checkForRulesToDelete() throws ManagementServerException { + NetworkVO kubernetesClusterNetwork = networkDao.findById(kubernetesCluster.getNetworkId()); + if (kubernetesClusterNetwork != null && kubernetesClusterNetwork.getGuestType() != Network.GuestType.Shared) { + deleteKubernetesClusterNetworkRules(); + } + } + public boolean destroy() throws CloudRuntimeException { init(); validateClusterSate(); @@ -238,7 +246,7 @@ public boolean destroy() throws CloudRuntimeException { } } else { try { - deleteKubernetesClusterNetworkRules(); + checkForRulesToDelete(); } catch (ManagementServerException e) { String msg = String.format("Failed to remove network rules of Kubernetes cluster ID: %s", kubernetesCluster.getUuid()); LOGGER.warn(msg, e);