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]