Skip to content

Commit 769bf1a

Browse files
authored
Merge pull request #161 from iocanel/misc
Step namespace should have priority over anything else.
2 parents 540147e + f0c053b commit 769bf1a

File tree

4 files changed

+36
-3
lines changed

4 files changed

+36
-3
lines changed

src/main/java/org/csanchez/jenkins/plugins/kubernetes/PodTemplate.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ public PodTemplate(PodTemplate from) {
109109
this.setInstanceCap(from.getInstanceCap());
110110
this.setLabel(from.getLabel());
111111
this.setName(from.getName());
112+
this.setNamespace(from.getNamespace());
112113
this.setInheritFrom(from.getInheritFrom());
113114
this.setNodeSelector(from.getNodeSelector());
114115
this.setServiceAccount(from.getServiceAccount());

src/main/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/PodTemplateStepExecution.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@ public void stop(Throwable cause) throws Exception {
8484

8585
private String checkNamespace(KubernetesCloud kubernetesCloud, NamespaceAction namespaceAction) {
8686
String namespace = null;
87-
if (!Strings.isNullOrEmpty(namespaceAction.getNamespace())) {
88-
namespace = namespaceAction.getNamespace();
89-
} else if (!Strings.isNullOrEmpty(step.getNamespace())) {
87+
if (!Strings.isNullOrEmpty(step.getNamespace())) {
9088
namespace = step.getNamespace();
89+
} else if (!Strings.isNullOrEmpty(namespaceAction.getNamespace())) {
90+
namespace = namespaceAction.getNamespace();
9191
} else if (!Strings.isNullOrEmpty(kubernetesCloud.getNamespace())) {
9292
namespace = kubernetesCloud.getNamespace();
9393
} else {

src/test/java/org/csanchez/jenkins/plugins/kubernetes/pipeline/KubernetesPipelineTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,28 @@ public void runWithOverriddenNamespace() throws Exception {
204204
r.assertLogContains(overriddenNamespace, b);
205205
}
206206

207+
@Test
208+
public void runWithOverriddenNamespace2() throws Exception {
209+
configureCloud(r);
210+
String overriddenNamespace = "kubernetes-plugin-overridden-namespace";
211+
KubernetesClient client = cloud.connect();
212+
// Run in our own testing namespace
213+
client.namespaces().createOrReplace(
214+
new NamespaceBuilder().withNewMetadata().withName("testns2").endMetadata()
215+
.build());
216+
217+
WorkflowJob p = r.jenkins.createProject(WorkflowJob.class, "job with dir");
218+
p.setDefinition(new CpsFlowDefinition(loadPipelineScript("runWithOverriddenNamespace2.groovy"), true));
219+
220+
WorkflowRun b = p.scheduleBuild2(0).waitForStart();
221+
NamespaceAction namespaceAction = new NamespaceAction(b);
222+
namespaceAction.push(overriddenNamespace);
223+
224+
assertNotNull(b);
225+
r.assertBuildStatusSuccess(r.waitForCompletion(b));
226+
r.assertLogContains("testns2", b);
227+
}
228+
207229
// @Test
208230
public void runInPodWithRestart() throws Exception {
209231
story.addStep(new Statement() {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
podTemplate(cloud: 'minikube', namespace: 'testns2', label: 'mypod', volumes: [emptyDirVolume(mountPath: '/my-mount')], containers: [
2+
containerTemplate(name: 'jnlp', image: 'jenkinsci/jnlp-slave:2.62-alpine', args: '${computer.jnlpmac} ${computer.name}')
3+
]) {
4+
5+
node ('mypod') {
6+
container(name: 'jnlp') {
7+
sh "cat /var/run/secrets/kubernetes.io/serviceaccount/namespace"
8+
}
9+
}
10+
}

0 commit comments

Comments
 (0)