List of usage examples for com.amazonaws.services.ecs.model ContainerDefinition ContainerDefinition
ContainerDefinition
From source file:com.cloudbees.jenkins.plugins.amazonecs.ECSTaskTemplate.java
License:Open Source License
public RegisterTaskDefinitionRequest asRegisterTaskDefinitionRequest(ECSCloud owner) { String familyName = getFullQualifiedTemplateName(owner); final ContainerDefinition def = new ContainerDefinition().withName(familyName).withImage(image) .withEnvironment(getEnvironmentKeyValuePairs()).withExtraHosts(getExtraHostEntries()) .withMemory(memory).withMountPoints(getMountPointEntries()).withCpu(cpu).withPrivileged(privileged); if (entrypoint != null) def.withEntryPoint(StringUtils.split(entrypoint)); if (jvmArgs != null) def.withEnvironment(new KeyValuePair().withName("JAVA_OPTS").withValue(jvmArgs)).withEssential(true); if (logDriver != null) { LogConfiguration logConfig = new LogConfiguration(); logConfig.setLogDriver(logDriver); logConfig.setOptions(getLogDriverOptionsMap()); def.withLogConfiguration(logConfig); }/*from w w w . j a va2s.c o m*/ return new RegisterTaskDefinitionRequest().withFamily(familyName).withVolumes(getVolumeEntries()) .withContainerDefinitions(def); }
From source file:com.netflix.spinnaker.clouddriver.ecs.deploy.ops.CreateServerGroupAtomicOperation.java
License:Apache License
private TaskDefinition registerTaskDefinition(AmazonECS ecs, String version) { Collection<KeyValuePair> containerEnvironment = new LinkedList<>(); containerEnvironment.add(new KeyValuePair().withName("SERVER_GROUP").withValue(version)); containerEnvironment.add(new KeyValuePair().withName("CLOUD_STACK").withValue(description.getStack())); containerEnvironment//from ww w . ja v a 2 s . c o m .add(new KeyValuePair().withName("CLOUD_DETAIL").withValue(description.getFreeFormDetails())); PortMapping portMapping = new PortMapping().withHostPort(0) .withContainerPort(description.getContainerPort()) .withProtocol(description.getPortProtocol() != null ? description.getPortProtocol() : "tcp"); Collection<PortMapping> portMappings = new LinkedList<>(); portMappings.add(portMapping); ContainerDefinition containerDefinition = new ContainerDefinition().withName(version) .withEnvironment(containerEnvironment).withPortMappings(portMappings) .withCpu(description.getComputeUnits()).withMemoryReservation(description.getReservedMemory()) .withImage(description.getDockerImageAddress()); Collection<ContainerDefinition> containerDefinitions = new LinkedList<>(); containerDefinitions.add(containerDefinition); RegisterTaskDefinitionRequest request = new RegisterTaskDefinitionRequest() .withContainerDefinitions(containerDefinitions).withFamily(getFamilyName()); if (!description.getIamRole().equals("None (No IAM role)")) { checkRoleTrustRelations(description.getIamRole()); request.setTaskRoleArn(description.getIamRole()); } RegisterTaskDefinitionResult registerTaskDefinitionResult = ecs.registerTaskDefinition(request); return registerTaskDefinitionResult.getTaskDefinition(); }
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 {//from w ww . j a va 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; } }