diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesConfigsMaps.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesConfigsMaps.java index cb49266a3a7..1338941f9a0 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesConfigsMaps.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesConfigsMaps.java @@ -65,6 +65,7 @@ public void delete() throws InfrastructureException { .configMaps() .inNamespace(namespace) .withLabel(CHE_WORKSPACE_ID_LABEL, workspaceId) + .withPropagationPolicy("Foreground") .delete(); } catch (KubernetesClientException e) { throw new KubernetesInfrastructureException(e); diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeployments.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeployments.java index d03eaeffd4c..66f8e55e4f9 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeployments.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeployments.java @@ -925,7 +925,7 @@ protected CompletableFuture doDeleteDeployment(String deploymentName) toCloseOnException = watch; } - Boolean deleteSucceeded = deploymentResource.delete(); + Boolean deleteSucceeded = deploymentResource.withPropagationPolicy("Foreground").delete(); if (deleteSucceeded == null || !deleteSucceeded) { deleteFuture.complete(null); @@ -963,7 +963,7 @@ protected CompletableFuture doDeletePod(String podName) throws Infrastruct final Watch watch = podResource.watch(new DeleteWatcher(deleteFuture)); toCloseOnException = watch; - Boolean deleteSucceeded = podResource.delete(); + Boolean deleteSucceeded = podResource.withPropagationPolicy("Foreground").delete(); if (deleteSucceeded == null || !deleteSucceeded) { deleteFuture.complete(null); } diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java index 080e6b0a129..74ab49cc2e6 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesIngresses.java @@ -144,6 +144,7 @@ public void delete() throws InfrastructureException { .ingresses() .inNamespace(namespace) .withLabel(CHE_WORKSPACE_ID_LABEL, workspaceId) + .withPropagationPolicy("Foreground") .delete(); } catch (KubernetesClientException e) { throw new KubernetesInfrastructureException(e); diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java index d963892b9e2..22660f9fe71 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespace.java @@ -317,7 +317,7 @@ private void update(Namespace namespace, KubernetesClient client) throws Infrast private void delete(String namespaceName, KubernetesClient client) throws InfrastructureException { try { - client.namespaces().withName(namespaceName).delete(); + client.namespaces().withName(namespaceName).withPropagationPolicy("Foreground").delete(); } catch (KubernetesClientException e) { if (e.getCode() == 404) { LOG.warn( diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesPersistentVolumeClaims.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesPersistentVolumeClaims.java index 9afdb8c017e..8c83c4e81b7 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesPersistentVolumeClaims.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesPersistentVolumeClaims.java @@ -151,6 +151,7 @@ public void delete(Map labels) throws InfrastructureException { .persistentVolumeClaims() .inNamespace(namespace) .withLabels(labels) + .withPropagationPolicy("Foreground") .delete(); } catch (KubernetesClientException e) { throw new KubernetesInfrastructureException(e); diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecrets.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecrets.java index a1103601bae..8e5239948a3 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecrets.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecrets.java @@ -64,6 +64,7 @@ public void delete() throws InfrastructureException { .secrets() .inNamespace(namespace) .withLabel(CHE_WORKSPACE_ID_LABEL, workspaceId) + .withPropagationPolicy("Foreground") .delete(); } catch (KubernetesClientException e) { throw new KubernetesInfrastructureException(e); diff --git a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesServices.java b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesServices.java index 7bbfdd556b4..d3de91a02b1 100644 --- a/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesServices.java +++ b/infrastructures/kubernetes/src/main/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesServices.java @@ -87,6 +87,7 @@ public void delete() throws InfrastructureException { .services() .inNamespace(namespace) .withLabel(CHE_WORKSPACE_ID_LABEL, workspaceId) + .withPropagationPolicy("Foreground") .delete(); } catch (KubernetesClientException e) { throw new KubernetesInfrastructureException(e); diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeploymentsTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeploymentsTest.java index 8b5b2bd6fc7..ae332f7d203 100644 --- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeploymentsTest.java +++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesDeploymentsTest.java @@ -18,6 +18,7 @@ import static org.eclipse.che.workspace.infrastructure.kubernetes.Constants.POD_STATUS_PHASE_SUCCEEDED; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.lenient; @@ -456,6 +457,7 @@ public void testDeleteNonExistingPodBeforeWatch() throws Exception { doReturn(POD_NAME).when(metadata).getName(); doReturn(Boolean.FALSE).when(podResource).delete(); + doReturn(podResource).when(podResource).withPropagationPolicy(eq("Foreground")); Watch watch = mock(Watch.class); doReturn(watch).when(podResource).watch(any()); @@ -470,7 +472,7 @@ public void testDeleteNonExistingPodBeforeWatch() throws Exception { public void testDeletePodThrowingKubernetesClientExceptionShouldCloseWatch() throws Exception { final String POD_NAME = "nonExistingPod"; doReturn(POD_NAME).when(metadata).getName(); - + doReturn(podResource).when(podResource).withPropagationPolicy(eq("Foreground")); doThrow(KubernetesClientException.class).when(podResource).delete(); Watch watch = mock(Watch.class); doReturn(watch).when(podResource).watch(any()); @@ -491,7 +493,8 @@ public void testDeletePodThrowingKubernetesClientExceptionShouldCloseWatch() thr public void testDeleteNonExistingDeploymentBeforeWatch() throws Exception { final String DEPLOYMENT_NAME = "nonExistingPod"; doReturn(DEPLOYMENT_NAME).when(deploymentMetadata).getName(); - + doReturn(podResource).when(podResource).withPropagationPolicy(eq("Foreground")); + doReturn(deploymentResource).when(deploymentResource).withPropagationPolicy(eq("Foreground")); doReturn(Boolean.FALSE).when(deploymentResource).delete(); Watch watch = mock(Watch.class); doReturn(watch).when(podResource).watch(any()); @@ -510,6 +513,7 @@ public void testDeleteDeploymentThrowingKubernetesClientExceptionShouldCloseWatc doReturn(DEPLOYMENT_NAME).when(deploymentMetadata).getName(); doThrow(KubernetesClientException.class).when(deploymentResource).delete(); + doReturn(deploymentResource).when(deploymentResource).withPropagationPolicy(eq("Foreground")); Watch watch = mock(Watch.class); doReturn(watch).when(podResource).watch(any()); diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespaceTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespaceTest.java index 98001a84eaf..dcfc0a587ff 100644 --- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespaceTest.java +++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesNamespaceTest.java @@ -13,6 +13,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; @@ -365,6 +366,7 @@ private MetadataNested prepareCreateNamespaceRequest() { private Resource prepareNamespaceResource(String namespaceName) { Resource namespaceResource = mock(Resource.class); doReturn(namespaceResource).when(namespaceOperation).withName(namespaceName); + doReturn(namespaceResource).when(namespaceResource).withPropagationPolicy(eq("Foreground")); when(namespaceResource.get()) .thenReturn( new NamespaceBuilder().withNewMetadata().withName(namespaceName).endMetadata().build()); @@ -375,6 +377,7 @@ private Resource prepareNamespaceResource(String namespaceName) { private Resource prepareManagedNamespaceResource(String namespaceName) { Resource namespaceResource = mock(Resource.class); doReturn(namespaceResource).when(namespaceOperation).withName(namespaceName); + doReturn(namespaceResource).when(namespaceResource).withPropagationPolicy(eq("Foreground")); when(namespaceResource.get()) .thenReturn( new NamespaceBuilder() diff --git a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecretsTest.java b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecretsTest.java index c945c4ced19..406fe840562 100644 --- a/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecretsTest.java +++ b/infrastructures/kubernetes/src/test/java/org/eclipse/che/workspace/infrastructure/kubernetes/namespace/KubernetesSecretsTest.java @@ -13,6 +13,7 @@ import static org.eclipse.che.workspace.infrastructure.kubernetes.Constants.CHE_WORKSPACE_ID_LABEL; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -73,6 +74,7 @@ public void setUp() throws Exception { when(client.secrets()).thenReturn(secretsMixedOperation); lenient().when(secretsMixedOperation.inNamespace(any())).thenReturn(nonNamespaceOperation); lenient().when(nonNamespaceOperation.withLabel(any(), any())).thenReturn(deletableList); + lenient().doReturn(deletableList).when(deletableList).withPropagationPolicy(eq("Foreground")); } @Test