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]

Reply via email to