Skip to content

Commit

Permalink
Merge branch 'etcinit-node-selector'
Browse files Browse the repository at this point in the history
  • Loading branch information
carlossg committed Mar 8, 2016
2 parents dafcede + 874794e commit ca76537
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 0 deletions.
Expand Up @@ -260,6 +260,7 @@ private Pod getPodTemplate(KubernetesSlave slave, Label label) {
.addToArgs(slave.getComputer().getJnlpMac())
.addToArgs(slave.getComputer().getName())
.endContainer()
.withNodeSelector(getNodeSelectorMap(template.getNodeSelector()))
.withRestartPolicy("Never")
.endSpec()
.build();
Expand All @@ -269,6 +270,20 @@ private Map<String, String> getLabelsFor(String id) {
return ImmutableMap.<String, String> builder().putAll(POD_LABEL).putAll(ImmutableMap.of("name", id)).build();
}

private Map<String, String> getNodeSelectorMap(String selectors)
{
ImmutableMap.Builder<String, String> builder = ImmutableMap.<String, String> builder();

for (String selector : selectors.split(","))
{
String[] parts = selector.split("=");

builder = builder.put(parts[0], parts[1]);
}

return builder.build();
}

/**
* Split a command in the parts that Docker need
*
Expand Down
Expand Up @@ -38,6 +38,8 @@ public class PodTemplate extends AbstractDescribableImpl<PodTemplate> {

private String label;

private String nodeSelector;

private final List<PodVolume> volumes;

@DataBoundConstructor
Expand Down Expand Up @@ -130,6 +132,15 @@ public String getLabel() {
return label;
}

@DataBoundSetter
public void setNodeSelector(String nodeSelector) {
this.nodeSelector = nodeSelector;
}

public String getNodeSelector() {
return nodeSelector;
}

@DataBoundSetter
public void setPrivileged(boolean privileged) {
this.privileged = privileged;
Expand Down
Expand Up @@ -66,6 +66,10 @@ THE SOFTWARE.
<f:entry field="privileged" title="${%Run in privileged mode}">
<f:checkbox/>
</f:entry>

<f:entry field="nodeSelector" title="${%Node Selector}">
<f:textbox/>
</f:entry>
</f:advanced>

</j:jelly>
@@ -0,0 +1,2 @@
Specify which nodes the pod should operate on by providing a comma separated list of node labels:
`label1=value1,label2=value2`.

0 comments on commit ca76537

Please sign in to comment.