This is an automated email from the ASF dual-hosted git repository.
gian 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 4f607fb4bae Remove startupProbe in kubernetes-overlord-extensions
(#17784)
4f607fb4bae is described below
commit 4f607fb4bae1ddfa5fc1f9c819759cbd45fe0ae2
Author: Sebastian S. <[email protected]>
AuthorDate: Tue Apr 1 22:30:01 2025 +0200
Remove startupProbe in kubernetes-overlord-extensions (#17784)
* Remove startupProbe in kubernetes-overlord-extensions
Signed-off-by: Sebastian Struß <[email protected]>
* Add unit test for probes removed from podSpec
Signed-off-by: Sebastian Struß <[email protected]>
* Restore styling, add resources to expected test output.
---------
Signed-off-by: Sebastian Struß <[email protected]>
Co-authored-by: Gian Merlino <[email protected]>
---
.../k8s/overlord/taskadapter/K8sTaskAdapter.java | 1 +
.../overlord/taskadapter/K8sTaskAdapterTest.java | 50 +++++++++++++++++
.../resources/expectedProbesRemovedOutput.yaml | 63 ++++++++++++++++++++++
.../src/test/resources/probesPodSpec.yaml | 26 +++++++++
4 files changed, 140 insertions(+)
diff --git
a/extensions-core/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java
b/extensions-core/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java
index 1026ccb2486..c4b7bc5e92b 100644
---
a/extensions-core/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java
+++
b/extensions-core/kubernetes-overlord-extensions/src/main/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapter.java
@@ -311,6 +311,7 @@ public abstract class K8sTaskAdapter implements TaskAdapter
// remove probes
mainContainer.setReadinessProbe(null);
mainContainer.setLivenessProbe(null);
+ mainContainer.setStartupProbe(null);
setupPorts(mainContainer);
addEnvironmentVariables(mainContainer, context, taskContents);
diff --git
a/extensions-core/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapterTest.java
b/extensions-core/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapterTest.java
index bcfb19adcb0..28a455a96a3 100644
---
a/extensions-core/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapterTest.java
+++
b/extensions-core/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/taskadapter/K8sTaskAdapterTest.java
@@ -577,6 +577,56 @@ class K8sTaskAdapterTest
Assertions.assertEquals(expected, actual);
}
+ @Test
+ void testProbesRemoved() throws IOException
+ {
+ TestKubernetesClient testClient = new TestKubernetesClient(client);
+ Pod pod = K8sTestUtils.fileToResource("probesPodSpec.yaml", Pod.class);
+ KubernetesTaskRunnerConfig config = KubernetesTaskRunnerConfig.builder()
+
.withNamespace("test")
+ .build();
+
+ SingleContainerTaskAdapter adapter = new SingleContainerTaskAdapter(
+ testClient,
+ config,
+ taskConfig,
+ startupLoggingConfig,
+ node,
+ jsonMapper,
+ taskLogs
+ );
+ NoopTask task = K8sTestUtils.createTask("id", 1);
+ Job actual = adapter.createJobFromPodSpec(
+ pod.getSpec(),
+ task,
+ new PeonCommandContext(
+ Collections.singletonList("foo && bar"),
+ new ArrayList<>(),
+ new File("/tmp"),
+ config.getCpuCoreInMicro()
+ )
+ );
+ Job expected =
K8sTestUtils.fileToResource("expectedProbesRemovedOutput.yaml", Job.class);
+ // something is up with jdk 17, where if you compress with jdk < 17 and
try and decompress you get different results,
+ // this would never happen in real life, but for the jdk 17 tests this is
a problem
+ // could be related to: https://bugs.openjdk.org/browse/JDK-8081450
+ actual.getSpec()
+ .getTemplate()
+ .getSpec()
+ .getContainers()
+ .get(0)
+ .getEnv()
+ .removeIf(x -> x.getName().equals("TASK_JSON"));
+ expected.getSpec()
+ .getTemplate()
+ .getSpec()
+ .getContainers()
+ .get(0)
+ .getEnv()
+ .removeIf(x -> x.getName().equals("TASK_JSON"));
+ Assertions.assertEquals(expected, actual);
+ }
+
@Test
void testCPUResourceIsRespected() throws IOException
{
diff --git
a/extensions-core/kubernetes-overlord-extensions/src/test/resources/expectedProbesRemovedOutput.yaml
b/extensions-core/kubernetes-overlord-extensions/src/test/resources/expectedProbesRemovedOutput.yaml
new file mode 100644
index 00000000000..8379b295824
--- /dev/null
+++
b/extensions-core/kubernetes-overlord-extensions/src/test/resources/expectedProbesRemovedOutput.yaml
@@ -0,0 +1,63 @@
+apiVersion: "batch/v1"
+kind: "Job"
+metadata:
+ annotations:
+ task.id: "id"
+ tls.enabled: "false"
+ labels:
+ druid.k8s.peons: "true"
+ name: "id-3e70afe5cd823dfc7dd308eea616426b"
+spec:
+ activeDeadlineSeconds: 14400
+ backoffLimit: 0
+ template:
+ metadata:
+ annotations:
+ task.id: "id"
+ tls.enabled: "false"
+ labels:
+ druid.k8s.peons: "true"
+ spec:
+ containers:
+ - args:
+ - "foo && bar"
+ command:
+ - "sh"
+ - "-c"
+ env:
+ - name: "druid_monitoring_monitors"
+ value: "[\"org.apache.druid.java.util.metrics.JvmMonitor\",
\"org.apache.druid.server.metrics.TaskCountStatsMonitor\"\
+ ]"
+ - name: "TASK_DIR"
+ value: "/tmp"
+ - name: "TASK_JSON"
+ value:
"H4sIAAAAAAAAAEVOOw7CMAy9i+cOBYmlK0KItWVhNI0BSyEOToKoqt4doxZYLPv9/EbIQyRoIIhEqICd7TYquKqUePidDjN2UrSfxYEM0xKOfDdgvalr86aW0A0z9L9bSsVnc512nZkurHSTZJJQvK+gl5DpZfwIUVmU8wDNarJ0Ssu/EfCJ7PHM3tj9p9i3ltKjWKDbYsR+sU5vP86oMNUAAAA="
+ - name: "JAVA_OPTS"
+ value: ""
+ - name: "druid_host"
+ valueFrom:
+ fieldRef:
+ fieldPath: "status.podIP"
+ - name: "HOSTNAME"
+ valueFrom:
+ fieldRef:
+ fieldPath: "metadata.name"
+ image: "one"
+ name: "main"
+ ports:
+ - containerPort: 8091
+ name: "druid-tls-port"
+ protocol: "TCP"
+ - containerPort: 8100
+ name: "druid-port"
+ protocol: "TCP"
+ resources:
+ limits:
+ cpu: "1000m"
+ memory: "2400000000"
+ requests:
+ cpu: "1000m"
+ memory: "2400000000"
+ hostname: "id-3e70afe5cd823dfc7dd308eea616426b"
+ restartPolicy: "Never"
+ ttlSecondsAfterFinished: 172800
\ No newline at end of file
diff --git
a/extensions-core/kubernetes-overlord-extensions/src/test/resources/probesPodSpec.yaml
b/extensions-core/kubernetes-overlord-extensions/src/test/resources/probesPodSpec.yaml
new file mode 100644
index 00000000000..a76979b0426
--- /dev/null
+++
b/extensions-core/kubernetes-overlord-extensions/src/test/resources/probesPodSpec.yaml
@@ -0,0 +1,26 @@
+apiVersion: v1
+kind: Pod
+metadata:
+ name: test
+spec:
+ containers:
+ - command:
+ - sleep
+ - "3600"
+ image: one
+ name: primary
+ startupProbe:
+ httpGet:
+ port: 8100
+ path: /status/health
+ livenessProbe:
+ httpGet:
+ port: 8100
+ path: /status/health
+ readinessProbe:
+ httpGet:
+ port: 8100
+ path: /status/health
+ env:
+ - name: "druid_monitoring_monitors"
+ value: '["org.apache.druid.java.util.metrics.JvmMonitor",
"org.apache.druid.server.metrics.TaskCountStatsMonitor"]'
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]