List of usage examples for com.amazonaws.services.ecs.model LinuxParameters setCapabilities
public void setCapabilities(KernelCapabilities capabilities)
The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker.
From source file:com.remediatetheflag.global.utils.AWSHelper.java
License:Apache License
public String createECSTaskDefinition(RTFECSTaskDefinition taskDef, User user) { createExerciseLogGroup(taskDef.getRegion(), Constants.EXERCISE_LOG_GROUP); AmazonECS client = AmazonECSClientBuilder.standard().withRegion(taskDef.getRegion()) .withCredentials(new DefaultAWSCredentialsProviderChain()).build(); RegisterTaskDefinitionRequest request = new RegisterTaskDefinitionRequest(); ArrayList<PortMapping> portMappings = new ArrayList<PortMapping>(); portMappings.add(new PortMapping().withContainerPort(8080).withHostPort(0).withProtocol("tcp")); portMappings.add(new PortMapping().withContainerPort(3389).withHostPort(0).withProtocol("tcp")); LinuxParameters linuxParameters = new LinuxParameters(); KernelCapabilities capabilities = new KernelCapabilities(); capabilities.setAdd(Arrays.asList("NET_ADMIN")); linuxParameters.setCapabilities(capabilities); LogConfiguration logConfiguration = new LogConfiguration(); logConfiguration.setLogDriver("awslogs"); Map<String, String> options = new HashMap<String, String>(); options.put("awslogs-group", Constants.EXERCISE_LOG_GROUP); options.put("awslogs-region", taskDef.getRegion().getName().toLowerCase()); logConfiguration.setOptions(options); final ContainerDefinition def = new ContainerDefinition().withName(taskDef.getContainerName()) .withImage(taskDef.getRepositoryImageUrl()).withMemoryReservation(taskDef.getSoftMemoryLimit()) .withMemory(taskDef.getHardMemoryLimit()).withPortMappings(portMappings) .withLinuxParameters(linuxParameters).withLogConfiguration(logConfiguration).withEssential(true); request.setContainerDefinitions(Arrays.asList(def)); request.setFamily(taskDef.getTaskDefinitionName()); request.setNetworkMode("bridge"); try {// w w w .j ava 2s . c om RegisterTaskDefinitionResult response = client.registerTaskDefinition(request); logger.debug("# ECS Task Definition " + taskDef.getTaskDefinitionName() + " created for user " + user.getIdUser() + " in region " + taskDef.getRegion()); return response.getTaskDefinition().getTaskDefinitionArn(); } catch (Exception e) { logger.debug( "# ECS Task Definition " + taskDef.getTaskDefinitionName() + " COULD NOT BE created for user " + user.getIdUser() + " in region " + taskDef.getRegion() + "\n" + e.getMessage()); return null; } }