From b0bceaa7693b53246c1f6e397dbae7b588a2f5f2 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Tue, 10 Nov 2020 22:58:31 +0530 Subject: [PATCH 1/2] Fix destroying k8s cluster on shared networks --- .../actionworkers/KubernetesClusterDestroyWorker.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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..5ef0cba523a4 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; @@ -238,7 +239,10 @@ public boolean destroy() throws CloudRuntimeException { } } else { try { - deleteKubernetesClusterNetworkRules(); + NetworkVO kubernetesClusterNetwork = networkDao.findById(kubernetesCluster.getNetworkId()); + if (kubernetesClusterNetwork != null && kubernetesClusterNetwork.getGuestType() != Network.GuestType.Shared) { + deleteKubernetesClusterNetworkRules(); + } } catch (ManagementServerException e) { String msg = String.format("Failed to remove network rules of Kubernetes cluster ID: %s", kubernetesCluster.getUuid()); LOGGER.warn(msg, e); From 7b09f3c3e16ce06dfeccf200b778a8a4763b5fc1 Mon Sep 17 00:00:00 2001 From: Pearl Dsilva Date: Wed, 11 Nov 2020 18:39:15 +0530 Subject: [PATCH 2/2] Extracted code --- .../KubernetesClusterDestroyWorker.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 5ef0cba523a4..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 @@ -188,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(); @@ -239,10 +246,7 @@ public boolean destroy() throws CloudRuntimeException { } } else { try { - NetworkVO kubernetesClusterNetwork = networkDao.findById(kubernetesCluster.getNetworkId()); - if (kubernetesClusterNetwork != null && kubernetesClusterNetwork.getGuestType() != Network.GuestType.Shared) { - 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);