This is an automated email from the ASF dual-hosted git repository.

chufenggao pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 1e31327418 [Improvement][K8S] Disable delete namespaces in the K8S 
cluster (#14597)
1e31327418 is described below

commit 1e3132741855e819f0739da922377538423328ec
Author: Gallardot <[email protected]>
AuthorDate: Fri Jul 21 10:28:20 2023 +0800

    [Improvement][K8S] Disable delete namespaces in the K8S cluster (#14597)
    
    * [Improvement][K8S] Disable all namespaces operations in the K8S cluster
    
    Signed-off-by: Gallardot <[email protected]>
    
    ---------
    
    Signed-off-by: Gallardot <[email protected]>
    Co-authored-by: Eric Gao <[email protected]>
---
 .../dolphinscheduler/api/k8s/K8sClientService.java   | 20 +++++++-------------
 .../api/service/impl/K8SNamespaceServiceImpl.java    | 11 +----------
 2 files changed, 8 insertions(+), 23 deletions(-)

diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/k8s/K8sClientService.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/k8s/K8sClientService.java
index 393f440ee4..76b875ad77 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/k8s/K8sClientService.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/k8s/K8sClientService.java
@@ -44,7 +44,11 @@ public class K8sClientService {
 
     public ResourceQuota upsertNamespaceAndResourceToK8s(K8sNamespace 
k8sNamespace,
                                                          String yamlStr) 
throws RemotingException {
-        upsertNamespaceToK8s(k8sNamespace.getNamespace(), 
k8sNamespace.getClusterCode());
+        if (!checkNamespaceToK8s(k8sNamespace.getNamespace(), 
k8sNamespace.getClusterCode())) {
+            throw new RemotingException(String.format(
+                    "namespace %s does not exist in k8s cluster, please create 
namespace in k8s cluster first",
+                    k8sNamespace.getNamespace()));
+        }
         return upsertNamespacedResourceToK8s(k8sNamespace, yamlStr);
     }
 
@@ -101,19 +105,9 @@ public class K8sClientService {
         return list;
     }
 
-    private Namespace upsertNamespaceToK8s(String name, Long clusterCode) 
throws RemotingException {
+    private boolean checkNamespaceToK8s(String name, Long clusterCode) throws 
RemotingException {
         Optional<Namespace> result = getNamespaceFromK8s(name, clusterCode);
-        // if not exist create
-        if (!result.isPresent()) {
-            KubernetesClient client = k8sManager.getK8sClient(clusterCode);
-            Namespace body = new Namespace();
-            ObjectMeta meta = new ObjectMeta();
-            meta.setNamespace(name);
-            meta.setName(name);
-            body.setMetadata(meta);
-            return client.namespaces().create(body);
-        }
-        return result.get();
+        return result.isPresent();
     }
 
 }
diff --git 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/K8SNamespaceServiceImpl.java
 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/K8SNamespaceServiceImpl.java
index 194feb9d77..3d6050e62c 100644
--- 
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/K8SNamespaceServiceImpl.java
+++ 
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/K8SNamespaceServiceImpl.java
@@ -29,7 +29,6 @@ import org.apache.dolphinscheduler.dao.entity.K8sNamespace;
 import org.apache.dolphinscheduler.dao.entity.User;
 import org.apache.dolphinscheduler.dao.mapper.ClusterMapper;
 import org.apache.dolphinscheduler.dao.mapper.K8sNamespaceMapper;
-import org.apache.dolphinscheduler.remote.exceptions.RemotingException;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -322,15 +321,7 @@ public class K8SNamespaceServiceImpl extends 
BaseServiceImpl implements K8sNames
             putMsg(result, Status.K8S_NAMESPACE_NOT_EXIST, id);
             return result;
         }
-        if 
(!Constants.K8S_LOCAL_TEST_CLUSTER_CODE.equals(k8sNamespaceObj.getClusterCode()))
 {
-            try {
-                
k8sClientService.deleteNamespaceToK8s(k8sNamespaceObj.getNamespace(), 
k8sNamespaceObj.getClusterCode());
-            } catch (RemotingException e) {
-                log.error("Namespace delete in k8s error, namespaceId:{}.", 
id, e);
-                putMsg(result, Status.K8S_CLIENT_OPS_ERROR, id);
-                return result;
-            }
-        }
+
         k8sNamespaceMapper.deleteById(id);
         log.info("K8s namespace delete complete, namespace:{}.", 
k8sNamespaceObj.getNamespace());
         putMsg(result, Status.SUCCESS);

Reply via email to