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

suneet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new c8a11702db Support broadcast segmetns (#14789)
c8a11702db is described below

commit c8a11702db57b7b81f2f6c37847c5253dc106af6
Author: George Shiqi Wu <[email protected]>
AuthorDate: Fri Aug 11 14:14:05 2023 -0400

    Support broadcast segmetns (#14789)
---
 .../k8s/overlord/common/DruidK8sConstants.java     |  1 +
 .../taskadapter/PodTemplateTaskAdapter.java        |  6 +++-
 .../taskadapter/PodTemplateTaskAdapterTest.java    | 38 ++++++++++++++++++++++
 .../src/test/resources/expectedNoopJob.yaml        |  2 ++
 .../src/test/resources/expectedNoopJobLongIds.yaml |  2 ++
 .../test/resources/expectedNoopJobTlsEnabled.yaml  |  2 ++
 6 files changed, 50 insertions(+), 1 deletion(-)

diff --git 
a/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/common/DruidK8sConstants.java
 
b/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/common/DruidK8sConstants.java
index 56adfab11b..a5380bef3f 100644
--- 
a/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/common/DruidK8sConstants.java
+++ 
b/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/common/DruidK8sConstants.java
@@ -34,6 +34,7 @@ public class DruidK8sConstants
   public static final String TASK_JSON_ENV = "TASK_JSON";
   public static final String TASK_DIR_ENV = "TASK_DIR";
   public static final String TASK_ID_ENV = "TASK_ID";
+  public static final String LOAD_BROADCAST_SEGMENTS_ENV = 
"LOAD_BROADCAST_SEGMENTS";
   public static final String JAVA_OPTS = "JAVA_OPTS";
   public static final String DRUID_HOST_ENV = "druid_host";
   public static final String DRUID_HOSTNAME_ENV = "HOSTNAME";
diff --git 
a/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapter.java
 
b/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapter.java
index 661f5fb568..a3d10f7dcd 100644
--- 
a/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapter.java
+++ 
b/extensions-contrib/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapter.java
@@ -224,7 +224,11 @@ public class PodTemplateTaskAdapter implements TaskAdapter
             .withValueFrom(new EnvVarSourceBuilder().withFieldRef(new 
ObjectFieldSelector(
                 null,
                 StringUtils.format("metadata.annotations['%s']", 
DruidK8sConstants.TASK)
-            )).build()).build()
+            )).build()).build(),
+        new EnvVarBuilder()
+            .withName(DruidK8sConstants.LOAD_BROADCAST_SEGMENTS_ENV)
+            .withValue(Boolean.toString(task.supportsQueries()))
+            .build()
     );
   }
 
diff --git 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapterTest.java
 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapterTest.java
index 7f84c69cae..992a071e22 100644
--- 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapterTest.java
+++ 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/PodTemplateTaskAdapterTest.java
@@ -36,6 +36,7 @@ import org.apache.druid.k8s.overlord.common.Base64Compression;
 import org.apache.druid.k8s.overlord.common.DruidK8sConstants;
 import org.apache.druid.k8s.overlord.common.K8sTestUtils;
 import org.apache.druid.server.DruidNode;
+import org.easymock.EasyMock;
 import org.junit.Assert;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
@@ -48,6 +49,7 @@ import java.nio.file.Path;
 import java.util.Collections;
 import java.util.Map;
 import java.util.Properties;
+import java.util.stream.Collectors;
 
 public class PodTemplateTaskAdapterTest
 {
@@ -354,6 +356,42 @@ public class PodTemplateTaskAdapterTest
     assertJobSpecsEqual(actual, expected);
   }
 
+  @Test
+  public void test_fromTask_taskSupportsQueries() throws IOException
+  {
+    Path templatePath = Files.createFile(tempDir.resolve("noop.yaml"));
+    mapper.writeValue(templatePath.toFile(), podTemplateSpec);
+
+    Properties props = new Properties();
+    props.setProperty("druid.indexer.runner.k8s.podTemplate.base", 
templatePath.toString());
+    props.setProperty("druid.indexer.runner.k8s.podTemplate.queryable", 
templatePath.toString());
+
+    PodTemplateTaskAdapter adapter = new PodTemplateTaskAdapter(
+        taskRunnerConfig,
+        taskConfig,
+        node,
+        mapper,
+        props
+    );
+
+    Task task = EasyMock.mock(Task.class);
+    EasyMock.expect(task.supportsQueries()).andReturn(true);
+    EasyMock.expect(task.getType()).andReturn("queryable").anyTimes();
+    EasyMock.expect(task.getId()).andReturn("id").anyTimes();
+    EasyMock.expect(task.getGroupId()).andReturn("groupid").anyTimes();
+    EasyMock.expect(task.getDataSource()).andReturn("datasource").anyTimes();
+
+    EasyMock.replay(task);
+    Job actual = adapter.fromTask(task);
+    EasyMock.verify(task);
+
+    Assertions.assertEquals("true", actual.getSpec().getTemplate()
+        .getSpec().getContainers()
+        .get(0).getEnv().stream()
+        .filter(env -> 
env.getName().equals(DruidK8sConstants.LOAD_BROADCAST_SEGMENTS_ENV))
+        .collect(Collectors.toList()).get(0).getValue());
+  }
+
 
 
   private void assertJobSpecsEqual(Job actual, Job expected) throws IOException
diff --git 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJob.yaml
 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJob.yaml
index e74886094b..7c048ea6df 100644
--- 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJob.yaml
+++ 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJob.yaml
@@ -46,5 +46,7 @@ spec:
               valueFrom:
                 fieldRef:
                   fieldPath: "metadata.annotations['task']"
+            - name: "LOAD_BROADCAST_SEGMENTS"
+              value: "false"
           image: one
           name: primary
diff --git 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobLongIds.yaml
 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobLongIds.yaml
index 6b2c9b46a1..b781070892 100644
--- 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobLongIds.yaml
+++ 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobLongIds.yaml
@@ -46,5 +46,7 @@ spec:
               valueFrom:
                 fieldRef:
                   fieldPath: "metadata.annotations['task']"
+            - name: "LOAD_BROADCAST_SEGMENTS"
+              value: "false"
           image: one
           name: primary
diff --git 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobTlsEnabled.yaml
 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobTlsEnabled.yaml
index b9f654d877..0eb8f8b02f 100644
--- 
a/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobTlsEnabled.yaml
+++ 
b/extensions-contrib/kubernetes-overlord-extensions/src/test/resources/expectedNoopJobTlsEnabled.yaml
@@ -46,5 +46,7 @@ spec:
               valueFrom:
                 fieldRef:
                   fieldPath: "metadata.annotations['task']"
+            - name: "LOAD_BROADCAST_SEGMENTS"
+              value: "false"
           image: one
           name: primary


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to