This is an automated email from the ASF dual-hosted git repository.
xxubai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new efbedc396 [AMORO-4301][ams] Fix Kubernetes executor label prefix
(#4302)
efbedc396 is described below
commit efbedc396fa178abe39ec24071f91f24163d8c9a
Author: csurong <[email protected]>
AuthorDate: Thu Jul 30 21:39:30 2026 +0800
[AMORO-4301][ams] Fix Kubernetes executor label prefix (#4302)
Use Spark's executor label prefix for optimizer executor pods and add
regression coverage for both driver and executor labels.
Co-authored-by: caosurong <[email protected]>
Co-authored-by: ZhouJinsong <[email protected]>
---
.../server/manager/SparkOptimizerContainer.java | 3 ++-
.../manager/TestSparkOptimizerContainer.java | 22 ++++++++++++++++++++++
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/manager/SparkOptimizerContainer.java
b/amoro-ams/src/main/java/org/apache/amoro/server/manager/SparkOptimizerContainer.java
index d453798fe..775ecfdbd 100644
---
a/amoro-ams/src/main/java/org/apache/amoro/server/manager/SparkOptimizerContainer.java
+++
b/amoro-ams/src/main/java/org/apache/amoro/server/manager/SparkOptimizerContainer.java
@@ -340,7 +340,8 @@ public class SparkOptimizerContainer extends
AbstractOptimizerContainer {
public static final String KUBERNETES_NAMESPACE =
"spark.kubernetes.namespace";
public static final String KUBERNETES_SUBMISSION_WAIT_APP_COMPLETION =
"spark.kubernetes.submission.waitAppCompletion";
- public static final String KUBERNETES_EXECUTOR_LABEL_PREFIX =
"spark.kubernetes.driver.label.";
+ public static final String KUBERNETES_EXECUTOR_LABEL_PREFIX =
+ "spark.kubernetes.executor.label.";
public static final String KUBERNETES_DRIVER_LABEL_PREFIX =
"spark.kubernetes.driver.label.";
public static final String KUBERNETES_DRA_ENABLED =
"spark.dynamicAllocation.enabled";
public static final String KUBERNETES_DRA_MAX_EXECUTORS =
diff --git
a/amoro-ams/src/test/java/org/apache/amoro/server/manager/TestSparkOptimizerContainer.java
b/amoro-ams/src/test/java/org/apache/amoro/server/manager/TestSparkOptimizerContainer.java
index 5a432feb8..c109848aa 100644
---
a/amoro-ams/src/test/java/org/apache/amoro/server/manager/TestSparkOptimizerContainer.java
+++
b/amoro-ams/src/test/java/org/apache/amoro/server/manager/TestSparkOptimizerContainer.java
@@ -75,6 +75,17 @@ public class TestSparkOptimizerContainer {
+ "=false"));
}
+ @Test
+ public void testKubernetesAddsLabelsToDriverAndExecutorPods() {
+ SparkOptimizerContainer container =
createContainer("k8s://https://127.0.0.1:6443");
+ Resource resource = createResource(Maps.newHashMap());
+
+ String startupArgs = container.buildOptimizerStartupArgsString(resource);
+
+ assertPodLabels(startupArgs, "spark.kubernetes.driver.label.", resource);
+ assertPodLabels(startupArgs, "spark.kubernetes.executor.label.", resource);
+ }
+
@Test
public void testKubernetesWaitAppCompletionCanBeOverridden() {
SparkOptimizerContainer container =
createContainer("k8s://https://127.0.0.1:6443");
@@ -131,4 +142,15 @@ public class TestSparkOptimizerContainer {
.setProperties(properties)
.build();
}
+
+ private void assertPodLabels(String startupArgs, String labelPrefix,
Resource resource) {
+ Assert.assertTrue(
+ startupArgs.contains(
+ "--conf " + labelPrefix + "optimizer-group=" +
resource.getGroupName()));
+ Assert.assertTrue(
+ startupArgs.contains(
+ "--conf " + labelPrefix +
"optimizer-implementation=spark-native-kubernetes"));
+ Assert.assertTrue(
+ startupArgs.contains("--conf " + labelPrefix + "optimizer-id=" +
resource.getResourceId()));
+ }
}