This is an automated email from the ASF dual-hosted git repository.
zihaoxiang 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 7f2832fb4e [Fix-17906] Fix can't get pod's log in k8s task (#18075)
7f2832fb4e is described below
commit 7f2832fb4e8dbf087307582fcda67f59f026f632
Author: xiangzihao <[email protected]>
AuthorDate: Wed Mar 18 21:14:33 2026 +0800
[Fix-17906] Fix can't get pod's log in k8s task (#18075)
---
.../task/api/parameters/K8sTaskParameters.java | 14 +++++++++++
.../parameters/resource/DataSourceParameters.java | 28 ++++------------------
.../dolphinscheduler/plugin/task/k8s/K8sTask.java | 1 +
.../plugin/task/k8s/K8sParametersTest.java | 21 ++++++++++++++++
4 files changed, 41 insertions(+), 23 deletions(-)
diff --git
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/K8sTaskParameters.java
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/K8sTaskParameters.java
index 2df6001d41..d750893beb 100644
---
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/K8sTaskParameters.java
+++
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/K8sTaskParameters.java
@@ -17,6 +17,7 @@
package org.apache.dolphinscheduler.plugin.task.api.parameters;
+import org.apache.dolphinscheduler.common.utils.JSONUtils;
import org.apache.dolphinscheduler.plugin.task.api.K8sTaskExecutionContext;
import org.apache.dolphinscheduler.plugin.task.api.enums.ResourceType;
import org.apache.dolphinscheduler.plugin.task.api.model.Label;
@@ -31,8 +32,10 @@ import java.util.ArrayList;
import java.util.List;
import lombok.Data;
+import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
+@EqualsAndHashCode(callSuper = true)
@Data
@Slf4j
public class K8sTaskParameters extends AbstractParameters {
@@ -79,7 +82,18 @@ public class K8sTaskParameters extends AbstractParameters {
connectionParams = dataSourceParameters.getConnectionParams();
}
+ String configYaml = null;
+ String namespace = null;
+ if (StringUtils.isNotEmpty(connectionParams) &&
JSONUtils.checkJsonValid(connectionParams, false)) {
+ K8sTaskParameters connectionTaskParameters =
+ JSONUtils.parseObject(connectionParams,
K8sTaskParameters.class);
+ configYaml = connectionTaskParameters.getKubeConfig();
+ namespace = connectionTaskParameters.getNamespace();
+ }
+
return K8sTaskExecutionContext.builder()
+ .configYaml(configYaml)
+ .namespace(namespace)
.connectionParams(connectionParams)
.build();
}
diff --git
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/resource/DataSourceParameters.java
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/resource/DataSourceParameters.java
index 963eb9a3b4..ea22def897 100644
---
a/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/resource/DataSourceParameters.java
+++
b/dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/parameters/resource/DataSourceParameters.java
@@ -19,38 +19,20 @@ package
org.apache.dolphinscheduler.plugin.task.api.parameters.resource;
import org.apache.dolphinscheduler.spi.enums.DbType;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
import com.fasterxml.jackson.annotation.JsonProperty;
+@EqualsAndHashCode(callSuper = true)
+@Data
public class DataSourceParameters extends AbstractResourceParameters {
private DbType type;
- public String getResourceType() {
- return resourceType;
- }
-
- public void setResourceType(String resourceType) {
- this.resourceType = resourceType;
- }
-
@JsonProperty(value = "DATASOURCE")
private String resourceType;
private String connectionParams;
- public DbType getType() {
- return type;
- }
-
- public void setType(DbType type) {
- this.type = type;
- }
-
- public String getConnectionParams() {
- return connectionParams;
- }
-
- public void setConnectionParams(String connectionParams) {
- this.connectionParams = connectionParams;
- }
}
diff --git
a/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/main/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sTask.java
b/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/main/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sTask.java
index fdb39d7c28..b7a3666118 100644
---
a/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/main/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sTask.java
+++
b/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/main/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sTask.java
@@ -79,6 +79,7 @@ public class K8sTask extends AbstractK8sTask {
k8sTaskParameters.setNamespace(k8sConnectionParam.getNamespace());
k8sTaskParameters.setKubeConfig(kubeConfig);
k8sTaskExecutionContext.setConfigYaml(kubeConfig);
+
k8sTaskExecutionContext.setNamespace(k8sConnectionParam.getNamespace());
taskRequest.setK8sTaskExecutionContext(k8sTaskExecutionContext);
log.info("Initialize k8s task params:{}",
JSONUtils.toPrettyJsonString(k8sTaskParameters));
}
diff --git
a/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/test/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sParametersTest.java
b/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/test/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sParametersTest.java
index 543ec3e4bc..6cfcbcbd58 100644
---
a/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/test/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sParametersTest.java
+++
b/dolphinscheduler-task-plugin/dolphinscheduler-task-k8s/src/test/java/org/apache/dolphinscheduler/plugin/task/k8s/K8sParametersTest.java
@@ -17,9 +17,13 @@
package org.apache.dolphinscheduler.plugin.task.k8s;
+import org.apache.dolphinscheduler.plugin.task.api.K8sTaskExecutionContext;
+import org.apache.dolphinscheduler.plugin.task.api.enums.ResourceType;
import org.apache.dolphinscheduler.plugin.task.api.model.Label;
import
org.apache.dolphinscheduler.plugin.task.api.model.NodeSelectorExpression;
import
org.apache.dolphinscheduler.plugin.task.api.parameters.K8sTaskParameters;
+import
org.apache.dolphinscheduler.plugin.task.api.parameters.resource.DataSourceParameters;
+import
org.apache.dolphinscheduler.plugin.task.api.parameters.resource.ResourceParametersHelper;
import java.util.Arrays;
import java.util.List;
@@ -80,4 +84,21 @@ public class K8sParametersTest {
Assertions.assertEquals(nodeSelectorExpressions,
k8sTaskParameters.getNodeSelectors());
}
+ @Test
+ public void
testGenerateK8sTaskExecutionContextShouldContainDatasourceNamespace() {
+ String connectionParams =
"{\"kubeConfig\":\"{}\",\"namespace\":\"namespace\"}";
+ DataSourceParameters dataSourceParameters = new DataSourceParameters();
+ dataSourceParameters.setConnectionParams(connectionParams);
+
+ ResourceParametersHelper resourceParametersHelper = new
ResourceParametersHelper();
+ resourceParametersHelper.put(ResourceType.DATASOURCE, 1,
dataSourceParameters);
+
+ K8sTaskExecutionContext executionContext =
+
k8sTaskParameters.generateK8sTaskExecutionContext(resourceParametersHelper, 1);
+
+ Assertions.assertEquals(connectionParams,
executionContext.getConnectionParams());
+ Assertions.assertEquals("{}", executionContext.getConfigYaml());
+ Assertions.assertEquals(namespace, executionContext.getNamespace());
+ }
+
}