@Test public void testDockerMinimalNetworking() { taskResources = new Resources(1, 1, 0, 0); final SingularityRequest request = new SingularityRequestBuilder("test", RequestType.WORKER).build(); final SingularityContainerInfo containerInfo = new SingularityContainerInfo( SingularityContainerType.DOCKER, Optional.absent(), Optional.of(new SingularityDockerInfo("docker-image", true, SingularityDockerNetworkType.NONE, Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()))); final SingularityDeploy deploy = new SingularityDeployBuilder("test", "1") .setContainerInfo(Optional.of(containerInfo)) .build(); final SingularityTaskRequest taskRequest = new SingularityTaskRequest(request, deploy, pendingTask); final SingularityMesosTaskHolder task = builder.buildTask(offerHolder, Collections.emptyList(), taskRequest, taskResources, executorResources); assertEquals(Type.DOCKER, task.getMesosTask().getContainer().getType()); assertEquals(Protos.ContainerInfo.DockerInfo.Network.NONE, task.getMesosTask().getContainer().getDocker().getNetwork()); }
@Test public void testAutomaticPortMapping() { NetworkConfiguration netConf = new NetworkConfiguration(); netConf.setDefaultPortMapping(true); configuration.setNetworkConfiguration(netConf); taskResources = new Resources(1, 1, 2); final SingularityRequest request = new SingularityRequestBuilder("test", RequestType.WORKER).build(); final SingularityContainerInfo containerInfo = new SingularityContainerInfo( SingularityContainerType.DOCKER, Optional.absent(), Optional.of(new SingularityDockerInfo("docker-image", false, SingularityDockerNetworkType.BRIDGE, Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()))); final SingularityDeploy deploy = new SingularityDeployBuilder("test", "1") .setContainerInfo(Optional.of(containerInfo)) .build(); final SingularityTaskRequest taskRequest = new SingularityTaskRequest(request, deploy, pendingTask); final SingularityMesosTaskHolder task = builder.buildTask(offerHolder, Collections.singletonList(MesosUtils.getPortRangeResource(31010, 31011)), taskRequest, taskResources, executorResources); assertEquals(Type.DOCKER, task.getMesosTask().getContainer().getType()); assertEquals(Protos.ContainerInfo.DockerInfo.Network.BRIDGE, task.getMesosTask().getContainer().getDocker().getNetwork()); List<PortMapping> portMappings = task.getMesosTask().getContainer().getDocker().getPortMappingsList(); assertEquals(2, portMappings.size()); assertEquals(31010, portMappings.get(0).getHostPort()); assertEquals(31010, portMappings.get(0).getContainerPort()); assertEquals(31011, portMappings.get(1).getHostPort()); assertEquals(31011, portMappings.get(1).getContainerPort()); }
final SingularityMesosTaskHolder task = builder.buildTask(offerHolder, Collections.singletonList(MesosUtils.getPortRangeResource(31010, 31011)), taskRequest, taskResources, executorResources); assertEquals(Type.MESOS, task.getMesosTask().getContainer().getType()); final Image image = task.getMesosTask().getContainer().getMesos().getImage(); assertEquals(Protos.Image.Type.DOCKER, image.getType()); assertEquals("test:image", image.getDocker().getName()); final Volume volume = task.getMesosTask().getContainer().getVolumesList().get(0); assertEquals("/testing", volume.getContainerPath()); assertEquals("/host", volume.getHostPath()); assertEquals("iops", dockerVolume.getDriverOptions().getParameterList().get(0).getKey()); final NetworkInfo networkInfo = task.getMesosTask().getContainer().getNetworkInfosList().get(0); assertEquals("network-name", networkInfo.getName()); assertEquals(Arrays.asList("blue", "purple"), networkInfo.getGroupsList());
final SingularityMesosTaskHolder task = builder.buildTask(offerHolder, Collections.singletonList(MesosUtils.getPortRangeResource(31010, 31011)), taskRequest, taskResources, executorResources); assertEquals(Type.MESOS, task.getMesosTask().getContainer().getType()); final Image image = task.getMesosTask().getContainer().getMesos().getImage(); assertEquals(Protos.Image.Type.DOCKER, image.getType()); assertEquals("test:image", image.getDocker().getName()); final Volume volume = task.getMesosTask().getContainer().getVolumesList().get(0); assertEquals("/testing", volume.getContainerPath()); assertEquals("/host", volume.getHostPath()); assertEquals("iops", dockerVolume.getDriverOptions().getParameterList().get(0).getKey()); final NetworkInfo networkInfo = task.getMesosTask().getContainer().getNetworkInfosList().get(0); assertEquals("network-name", networkInfo.getName()); assertEquals(Arrays.asList("blue", "purple"), networkInfo.getGroupsList());
assertFalse(task.getMesosTask().getCommand().getShell()); assertEquals(Type.DOCKER, task.getMesosTask().getContainer().getType()); assertEquals("docker-image", task.getMesosTask().getContainer().getDocker().getImage()); assertTrue(task.getMesosTask().getContainer().getDocker().getPrivileged()); assertEquals("/container", task.getMesosTask().getContainer().getVolumes(0).getContainerPath()); assertEquals("/host", task.getMesosTask().getContainer().getVolumes(0).getHostPath()); assertEquals(Mode.RW, task.getMesosTask().getContainer().getVolumes(0).getMode()); assertTrue(task.getMesosTask().getContainer().getDocker().getParametersList().contains(envParameter)); assertEquals(String.format("/container/%s/%s", task.getTask().getTaskRequest().getDeploy().getRequestId(), task.getTask().getTaskRequest().getDeploy().getId()), task.getMesosTask().getContainer().getVolumes(1).getContainerPath()); assertEquals(String.format("/host/%s", task.getMesosTask().getTaskId().getValue()), task.getMesosTask().getContainer().getVolumes(1).getHostPath()); assertEquals(Mode.RO, task.getMesosTask().getContainer().getVolumes(1).getMode()); assertEquals(80, task.getMesosTask().getContainer().getDocker().getPortMappings(0).getContainerPort()); assertEquals(8080, task.getMesosTask().getContainer().getDocker().getPortMappings(0).getHostPort()); assertEquals("tcp", task.getMesosTask().getContainer().getDocker().getPortMappings(0).getProtocol()); assertTrue(MesosUtils.getAllPorts(task.getMesosTask().getResourcesList()).contains(8080L)); assertEquals(81, task.getMesosTask().getContainer().getDocker().getPortMappings(1).getContainerPort()); assertEquals(31000, task.getMesosTask().getContainer().getDocker().getPortMappings(1).getHostPort()); assertEquals("udp", task.getMesosTask().getContainer().getDocker().getPortMappings(1).getProtocol()); assertEquals(Protos.ContainerInfo.DockerInfo.Network.BRIDGE, task.getMesosTask().getContainer().getDocker().getNetwork());
@Test public void testAutomaticPortMapping() { NetworkConfiguration netConf = new NetworkConfiguration(); netConf.setDefaultPortMapping(true); configuration.setNetworkConfiguration(netConf); taskResources = new Resources(1, 1, 2); final SingularityRequest request = new SingularityRequestBuilder("test", RequestType.WORKER).build(); final SingularityContainerInfo containerInfo = new SingularityContainerInfo( SingularityContainerType.DOCKER, Optional.absent(), Optional.of(new SingularityDockerInfo("docker-image", false, SingularityDockerNetworkType.BRIDGE, Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()))); final SingularityDeploy deploy = new SingularityDeployBuilder("test", "1") .setContainerInfo(Optional.of(containerInfo)) .build(); final SingularityTaskRequest taskRequest = new SingularityTaskRequest(request, deploy, pendingTask); final SingularityMesosTaskHolder task = builder.buildTask(offerHolder, Collections.singletonList(MesosUtils.getPortRangeResource(31010, 31011)), taskRequest, taskResources, executorResources); assertEquals(Type.DOCKER, task.getMesosTask().getContainer().getType()); assertEquals(Protos.ContainerInfo.DockerInfo.Network.BRIDGE, task.getMesosTask().getContainer().getDocker().getNetwork()); List<PortMapping> portMappings = task.getMesosTask().getContainer().getDocker().getPortMappingsList(); assertEquals(2, portMappings.size()); assertEquals(31010, portMappings.get(0).getHostPort()); assertEquals(31010, portMappings.get(0).getContainerPort()); assertEquals(31011, portMappings.get(1).getHostPort()); assertEquals(31011, portMappings.get(1).getContainerPort()); }
@Test public void testDockerMinimalNetworking() { taskResources = new Resources(1, 1, 0, 0); final SingularityRequest request = new SingularityRequestBuilder("test", RequestType.WORKER).build(); final SingularityContainerInfo containerInfo = new SingularityContainerInfo( SingularityContainerType.DOCKER, Optional.absent(), Optional.of(new SingularityDockerInfo("docker-image", true, SingularityDockerNetworkType.NONE, Optional.absent(), Optional.absent(), Optional.absent(), Optional.absent()))); final SingularityDeploy deploy = new SingularityDeployBuilder("test", "1") .setContainerInfo(Optional.of(containerInfo)) .build(); final SingularityTaskRequest taskRequest = new SingularityTaskRequest(request, deploy, pendingTask); final SingularityMesosTaskHolder task = builder.buildTask(offerHolder, Collections.emptyList(), taskRequest, taskResources, executorResources); assertEquals(Type.DOCKER, task.getMesosTask().getContainer().getType()); assertEquals(Protos.ContainerInfo.DockerInfo.Network.NONE, task.getMesosTask().getContainer().getDocker().getNetwork()); }
assertFalse(task.getMesosTask().getCommand().getShell()); assertEquals(Type.DOCKER, task.getMesosTask().getContainer().getType()); assertEquals("docker-image", task.getMesosTask().getContainer().getDocker().getImage()); assertTrue(task.getMesosTask().getContainer().getDocker().getPrivileged()); assertEquals("/container", task.getMesosTask().getContainer().getVolumes(0).getContainerPath()); assertEquals("/host", task.getMesosTask().getContainer().getVolumes(0).getHostPath()); assertEquals(Mode.RW, task.getMesosTask().getContainer().getVolumes(0).getMode()); assertTrue(task.getMesosTask().getContainer().getDocker().getParametersList().contains(envParameter)); assertEquals(String.format("/container/%s/%s", task.getTask().getTaskRequest().getDeploy().getRequestId(), task.getTask().getTaskRequest().getDeploy().getId()), task.getMesosTask().getContainer().getVolumes(1).getContainerPath()); assertEquals(String.format("/host/%s", task.getMesosTask().getTaskId().getValue()), task.getMesosTask().getContainer().getVolumes(1).getHostPath()); assertEquals(Mode.RO, task.getMesosTask().getContainer().getVolumes(1).getMode()); assertEquals(80, task.getMesosTask().getContainer().getDocker().getPortMappings(0).getContainerPort()); assertEquals(8080, task.getMesosTask().getContainer().getDocker().getPortMappings(0).getHostPort()); assertEquals("tcp", task.getMesosTask().getContainer().getDocker().getPortMappings(0).getProtocol()); assertTrue(MesosUtils.getAllPorts(task.getMesosTask().getResourcesList()).contains(8080L)); assertEquals(81, task.getMesosTask().getContainer().getDocker().getPortMappings(1).getContainerPort()); assertEquals(31000, task.getMesosTask().getContainer().getDocker().getPortMappings(1).getHostPort()); assertEquals("udp", task.getMesosTask().getContainer().getDocker().getPortMappings(1).getProtocol()); assertEquals(Protos.ContainerInfo.DockerInfo.Network.BRIDGE, task.getMesosTask().getContainer().getDocker().getNetwork());