From d44340d1d09782e31cef6e2833d9b5bf1efaa4c4 Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Fri, 26 Jul 2019 17:45:26 +0200 Subject: [PATCH 1/2] [JENKINS-58574] Fix inheritance of showRawYaml --- .../plugins/kubernetes/PodTemplate.java | 6 +++- .../plugins/kubernetes/PodTemplateUtils.java | 1 + .../kubernetes/pipeline/PodTemplateStep.java | 6 +++- .../pipeline/PodTemplateStepExecution.java | 4 ++- .../pipeline/KubernetesPipelineTest.java | 7 ++++ .../pipeline/showRawYamlFalseInherited.groovy | 34 +++++++++++++++++++ 6 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy diff --git a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplate.java b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplate.java index 23751fb36..bf89887c7 100644 --- a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplate.java +++ b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplate.java @@ -766,8 +766,12 @@ public String getDescriptionForLogging() { getContainersDescriptionForLogging()); } + boolean isShowRawYamlSet() { + return showRawYaml != null; + } + public boolean isShowRawYaml() { - return showRawYaml == null ? true : showRawYaml.booleanValue(); + return isShowRawYamlSet() ? showRawYaml.booleanValue() : true; } @DataBoundSetter 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 ec4699d1e..f151ac979 100644 --- a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtils.java +++ b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplateUtils.java @@ -374,6 +374,7 @@ public static PodTemplate combine(PodTemplate parent, PodTemplate template) { podTemplate.setCustomWorkspaceVolumeEnabled(template.isCustomWorkspaceVolumeEnabled() ? template.isCustomWorkspaceVolumeEnabled() : parent.isCustomWorkspaceVolumeEnabled()); podTemplate.setPodRetention(template.getPodRetention()); + podTemplate.setShowRawYaml(template.isShowRawYamlSet() ? template.isShowRawYaml() : parent.isShowRawYaml()); List yamls = new ArrayList<>(parent.getYamls()); yamls.addAll(template.getYamls()); diff --git a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStep.java b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStep.java index 84467ecc3..fb0a83458 100755 --- a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStep.java +++ b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStep.java @@ -281,8 +281,12 @@ public void setPodRetention(PodRetention podRetention) { this.podRetention = podRetention; } + boolean isShowRawYamlSet() { + return showRawYaml != null; + } + public boolean isShowRawYaml() { - return showRawYaml == null ? true : showRawYaml.booleanValue(); + return isShowRawYamlSet() ? showRawYaml.booleanValue() : true; } @DataBoundSetter diff --git a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStepExecution.java b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStepExecution.java index 8b9cf3fd9..1a4fc8f75 100755 --- a/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStepExecution.java +++ b/src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStepExecution.java @@ -120,7 +120,9 @@ public boolean start() throws Exception { newTemplate.setImagePullSecrets( step.getImagePullSecrets().stream().map(x -> new PodImagePullSecret(x)).collect(toList())); newTemplate.setYaml(step.getYaml()); - newTemplate.setShowRawYaml(step.isShowRawYaml()); + if (step.isShowRawYamlSet()) { + newTemplate.setShowRawYaml(step.isShowRawYaml()); + } newTemplate.setPodRetention(step.getPodRetention()); if(step.getActiveDeadlineSeconds() != 0) { diff --git a/src/test/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/KubernetesPipelineTest.java b/src/test/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/KubernetesPipelineTest.java index 0ef5cdfb2..b0f3ddcb9 100644 --- a/src/test/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/KubernetesPipelineTest.java +++ b/src/test/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/KubernetesPipelineTest.java @@ -412,6 +412,13 @@ public void runInPodWithShowRawYamlFalse() throws Exception { r.assertLogNotContains("value: \"container-env-var-value\"", b); } + @Issue("JENKINS-58574") + @Test + public void showRawYamlFalseInherited() throws Exception { + r.assertBuildStatusSuccess(r.waitForCompletion(b)); + r.assertLogNotContains("value: \"container-env-var-value\"", b); + } + @Test @Issue("JENKINS-58405") public void overrideYaml() throws Exception { diff --git a/src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy b/src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy new file mode 100644 index 000000000..b3be0fd4f --- /dev/null +++ b/src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy @@ -0,0 +1,34 @@ +podTemplate(showRawYaml: false) { podTemplate(yaml: """ +apiVersion: v1 +kind: Pod +metadata: + labels: + some-label: some-label-value +spec: + containers: + - name: busybox + image: busybox + command: + - cat + tty: true + env: + - name: CONTAINER_ENV_VAR + value: container-env-var-value + - name: CONTAINER_ENV_VAR_FROM_SECRET + valueFrom: + secretKeyRef: + key: password + name: container-secret +""" +) +{ + node(POD_LABEL) { + stage('Run') { + container('busybox') { + sh ''' + echo "anything" + ''' + } + } + } +} } \ No newline at end of file From 7ce52ebe23db8bba38f830242a0dbe994ec0163e Mon Sep 17 00:00:00 2001 From: Vincent Latombe Date: Fri, 26 Jul 2019 17:55:28 +0200 Subject: [PATCH 2/2] Fix reviews from @jglick --- .../pipeline/showRawYamlFalseInherited.groovy | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy b/src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy index b3be0fd4f..bb5c9bd25 100644 --- a/src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy +++ b/src/test/resources/org/csanchez/jenkins/plugins/kubernetes/pipeline/showRawYamlFalseInherited.groovy @@ -1,9 +1,6 @@ -podTemplate(showRawYaml: false) { podTemplate(yaml: """ +podTemplate(showRawYaml: false) { podTemplate(yaml: ''' apiVersion: v1 kind: Pod -metadata: - labels: - some-label: some-label-value spec: containers: - name: busybox @@ -14,12 +11,7 @@ spec: env: - name: CONTAINER_ENV_VAR value: container-env-var-value - - name: CONTAINER_ENV_VAR_FROM_SECRET - valueFrom: - secretKeyRef: - key: password - name: container-secret -""" +''' ) { node(POD_LABEL) {