diff --git a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtils.java b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtils.java index fbaf4f58d..09a4064ca 100644 --- a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtils.java +++ b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtils.java @@ -327,6 +327,9 @@ public static Pod combine(Pod parent, Pod template) { ? parent.getSpec().getSchedulerName() : template.getSpec().getSchedulerName(); + Long activeDeadlineSeconds = template.getSpec().getActiveDeadlineSeconds() != null + ? template.getSpec().getActiveDeadlineSeconds() + : parent.getSpec().getActiveDeadlineSeconds(); Boolean hostNetwork = template.getSpec().getHostNetwork() != null ? template.getSpec().getHostNetwork() : parent.getSpec().getHostNetwork(); @@ -387,6 +390,7 @@ public static Pod combine(Pod parent, Pod template) { .withServiceAccount(serviceAccount) // .withServiceAccountName(serviceAccountName) // .withSchedulerName(schedulerName) + .withActiveDeadlineSeconds(activeDeadlineSeconds) // .withHostNetwork(hostNetwork) // .withShareProcessNamespace(shareProcessNamespace) // .withContainers(combinedContainers) // diff --git a/src/test/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtilsTest.java b/src/test/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtilsTest.java index e11b9ac63..9f9faca8f 100644 --- a/src/test/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtilsTest.java +++ b/src/test/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtilsTest.java @@ -420,6 +420,47 @@ public void shouldCombineAllPodKeyValueEnvVars() { assertThat(result.getEnvVars(), contains(podEnvVar1, podEnvVar2, podEnvVar3)); } + @Test + public void childShouldOverrideParentActiveDeadlineSeconds() { + Pod parentPod = new PodBuilder() + .withNewMetadata() + .endMetadata() + .withNewSpec() + .withActiveDeadlineSeconds(1L) + .endSpec() + .build(); + Pod childPod = new PodBuilder() + .withNewMetadata() + .endMetadata() + .withNewSpec() + .withActiveDeadlineSeconds(2L) + .endSpec() + .build(); + + Pod combinedPod = combine(parentPod, childPod); + assertEquals(combinedPod.getSpec().getActiveDeadlineSeconds(), Long.valueOf(2L)); + } + + @Test + public void shouldCombineActiveDeadlineSeconds() { + Pod parentPod = new PodBuilder() + .withNewMetadata() + .endMetadata() + .withNewSpec() + .withActiveDeadlineSeconds(1L) + .endSpec() + .build(); + Pod childPod = new PodBuilder() + .withNewMetadata() + .endMetadata() + .withNewSpec() + .endSpec() + .build(); + + Pod combinedPod = combine(parentPod, childPod); + assertEquals(combinedPod.getSpec().getActiveDeadlineSeconds(), Long.valueOf(1L)); + } + @Test public void shouldFilterOutNullOrEmptyPodKeyValueEnvVars() { PodTemplate template1 = new PodTemplate();