use of org.csanchez.jenkins.plugins.kubernetes.pod.yaml.Merge in project kubernetes-plugin by jenkinsci.
the class PodTemplateBuilderTest method yamlOverrideSecurityContext.
@Test
public void yamlOverrideSecurityContext() {
PodTemplate parent = new PodTemplate();
parent.setYaml("apiVersion: v1\n" + "kind: Pod\n" + "metadata:\n" + " labels:\n" + " some-label: some-label-value\n" + "spec:\n" + " securityContext:\n" + " runAsUser: 2000\n" + " runAsGroup: 2000\n" + " containers:\n" + " - name: container\n" + " securityContext:\n" + " runAsUser: 1000\n" + " runAsGroup: 1000\n" + " image: busybox\n" + " command:\n" + " - cat\n" + " tty: true\n");
PodTemplate child = new PodTemplate();
child.setYaml("spec:\n" + " securityContext:\n" + " runAsUser: 3000\n" + " runAsGroup: 3000\n" + " containers:\n" + " - name: container\n" + " image: busybox2\n" + " securityContext:\n" + " runAsUser: 2000\n" + " runAsGroup: 2000\n" + " command:\n" + " - cat\n" + " tty: true\n");
child.setInheritFrom("parent");
child.setYamlMergeStrategy(merge());
setupStubs();
PodTemplate result = combine(parent, child);
Pod pod = new PodTemplateBuilder(result, slave).build();
assertThat(pod.getSpec().getContainers(), hasSize(2));
Optional<Container> container = pod.getSpec().getContainers().stream().filter(c -> "container".equals(c.getName())).findFirst();
assertTrue(container.isPresent());
assertEquals(Long.valueOf(3000L), pod.getSpec().getSecurityContext().getRunAsUser());
assertEquals(Long.valueOf(3000L), pod.getSpec().getSecurityContext().getRunAsGroup());
assertEquals(Long.valueOf(2000L), container.get().getSecurityContext().getRunAsUser());
assertEquals(Long.valueOf(2000L), container.get().getSecurityContext().getRunAsGroup());
}
use of org.csanchez.jenkins.plugins.kubernetes.pod.yaml.Merge in project kubernetes-plugin by jenkinsci.
the class PodTemplateBuilderTest method yamlOverrideContainer.
@Test
public void yamlOverrideContainer() throws Exception {
PodTemplate parent = new PodTemplate();
parent.setYaml("apiVersion: v1\n" + "kind: Pod\n" + "metadata:\n" + " labels:\n" + " some-label: some-label-value\n" + "spec:\n" + " containers:\n" + " - name: container\n" + " image: busybox\n" + " command:\n" + " - cat\n" + " tty: true\n");
PodTemplate child = new PodTemplate();
child.setYaml("spec:\n" + " containers:\n" + " - name: container\n" + " image: busybox2\n" + " command:\n" + " - cat\n" + " tty: true\n");
child.setInheritFrom("parent");
child.setYamlMergeStrategy(merge());
setupStubs();
PodTemplate result = combine(parent, child);
Pod pod = new PodTemplateBuilder(result, slave).build();
// inherit from parent
assertEquals("some-label-value", pod.getMetadata().getLabels().get("some-label"));
assertThat(pod.getSpec().getContainers(), hasSize(2));
Optional<Container> container = pod.getSpec().getContainers().stream().filter(c -> "container".equals(c.getName())).findFirst();
assertTrue(container.isPresent());
assertEquals("busybox2", container.get().getImage());
}
use of org.csanchez.jenkins.plugins.kubernetes.pod.yaml.Merge in project kubernetes-plugin by jenkinsci.
the class KubernetesDeclarativeAgentUnitTest method serialization.
@Test
public void serialization() throws Exception {
instance.setCloud("cloud");
instance.setLabel("label");
instance.setYaml("yaml");
instance.setYamlMergeStrategy(new Merge());
DynamicPVCWorkspaceVolume workspaceVolume = new DynamicPVCWorkspaceVolume();
workspaceVolume.setStorageClassName("sc");
workspaceVolume.setRequestsSize("1G");
workspaceVolume.setAccessModes("ReadWrite");
instance.setWorkspaceVolume(workspaceVolume);
instance.setIdleMinutes(1);
instance.setInheritFrom("inheritFrom");
Map<String, Object> args = instance.getAsArgs();
assertThat(args.get("cloud"), equalTo("cloud"));
assertThat(args.get("label"), equalTo("label"));
assertThat(args.get("yaml"), equalTo("yaml"));
assertThat(args.get("yamlMergeStrategy"), isA(Merge.class));
assertThat(args.get("workspaceVolume"), equalTo(workspaceVolume));
assertThat(args.get("idleMinutes"), equalTo(1));
assertThat(args.get("inheritFrom"), equalTo("inheritFrom"));
}
use of org.csanchez.jenkins.plugins.kubernetes.pod.yaml.Merge in project kubernetes-plugin by jenkinsci.
the class KubernetesDeclarativeAgentUnitTest method complexGenerator.
@Test
public void complexGenerator() throws Exception {
instance.setCloud("cloud");
instance.setYaml("yaml");
instance.setYamlMergeStrategy(new Merge());
DynamicPVCWorkspaceVolume workspaceVolume = new DynamicPVCWorkspaceVolume();
workspaceVolume.setStorageClassName("sc");
workspaceVolume.setRequestsSize("1G");
workspaceVolume.setAccessModes("ReadWrite");
instance.setWorkspaceVolume(workspaceVolume);
instance.setPodRetention(new Never());
instance.setInheritFrom("inheritFrom");
dg.assertGenerateDirective(directive, "agent {\n" + " kubernetes {\n" + " cloud 'cloud'\n" + " inheritFrom 'inheritFrom'\n" + " podRetention never()\n" + " workspaceVolume dynamicPVC(accessModes: 'ReadWrite', requestsSize: '1G', storageClassName: 'sc')\n" + " yaml 'yaml'\n" + " yamlMergeStrategy merge()\n" + " }\n" + "}");
}
use of org.csanchez.jenkins.plugins.kubernetes.pod.yaml.Merge in project kubernetes-plugin by jenkinsci.
the class PodTemplateBuilderTest method yamlMergeContainers.
@Test
public void yamlMergeContainers() throws Exception {
PodTemplate parent = new PodTemplate();
parent.setYaml("apiVersion: v1\n" + "kind: Pod\n" + "metadata:\n" + " labels:\n" + " some-label: some-label-value\n" + "spec:\n" + " containers:\n" + " - name: container1\n" + " image: busybox\n" + " command:\n" + " - cat\n" + " tty: true\n");
PodTemplate child = new PodTemplate();
child.setYaml("spec:\n" + " containers:\n" + " - name: container2\n" + " image: busybox\n" + " command:\n" + " - cat\n" + " tty: true\n");
child.setYamlMergeStrategy(merge());
child.setInheritFrom("parent");
setupStubs();
PodTemplate result = combine(parent, child);
Pod pod = new PodTemplateBuilder(result, slave).build();
// inherit from parent
assertEquals("some-label-value", pod.getMetadata().getLabels().get("some-label"));
assertThat(pod.getSpec().getContainers(), hasSize(3));
Optional<Container> container1 = pod.getSpec().getContainers().stream().filter(c -> "container1".equals(c.getName())).findFirst();
assertTrue(container1.isPresent());
Optional<Container> container2 = pod.getSpec().getContainers().stream().filter(c -> "container2".equals(c.getName())).findFirst();
assertTrue(container2.isPresent());
}
Aggregations