Browse Source

[Improvement][K8S] Custom label of a K8S task can be passed to the pod (#15369)

Signed-off-by: Gallardot <gallardot@apache.org>
Gallardot 1 year ago
parent
commit
93ea5f64c3

+ 9 - 3
dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/k8s/impl/K8sTaskExecutor.java

@@ -112,11 +112,17 @@ public class K8sTaskExecutor extends AbstractK8sTaskExecutor {
         Map<String, Quantity> limitRes = new HashMap<>();
         limitRes.put(MEMORY, new Quantity(String.format("%s%s", limitPodMem, MI)));
         limitRes.put(CPU, new Quantity(String.valueOf(limitPodCpu)));
+
         Map<String, String> labelMap = k8STaskMainParameters.getLabelMap();
-        labelMap.put(LAYER_LABEL, LAYER_LABEL_VALUE);
-        labelMap.put(NAME_LABEL, k8sJobName);
+        Map<String, String> jobLabelMap = new HashMap<>();
+        jobLabelMap.put(LAYER_LABEL, LAYER_LABEL_VALUE);
+        jobLabelMap.put(NAME_LABEL, k8sJobName);
+        jobLabelMap.putAll(labelMap);
+
         Map<String, String> podLabelMap = new HashMap<>();
         podLabelMap.put(UNIQUE_LABEL_NAME, taskRequest.getTaskAppId());
+        podLabelMap.putAll(labelMap);
+
         EnvVar taskInstanceIdVar = new EnvVar(TASK_INSTANCE_ID, taskInstanceId, null);
         List<EnvVar> envVars = new ArrayList<>();
         envVars.add(taskInstanceIdVar);
@@ -161,7 +167,7 @@ public class K8sTaskExecutor extends AbstractK8sTaskExecutor {
                 .withApiVersion(API_VERSION)
                 .withNewMetadata()
                 .withName(k8sJobName)
-                .withLabels(labelMap)
+                .withLabels(jobLabelMap)
                 .withNamespace(namespaceName)
                 .endMetadata()
                 .withNewSpec()