List of usage examples for com.amazonaws.services.ecs.model RegisterTaskDefinitionResult getTaskDefinition
public TaskDefinition getTaskDefinition()
The full description of the registered task definition.
From source file:com.cloudbees.jenkins.plugins.amazonecs.ECSTaskTemplate.java
License:Open Source License
public void setOwner(ECSCloud owner) { final AmazonECSClient client = owner.getAmazonECSClient(); if (taskDefinitionArn == null) { final RegisterTaskDefinitionRequest req = asRegisterTaskDefinitionRequest(owner); final RegisterTaskDefinitionResult result = client.registerTaskDefinition(req); taskDefinitionArn = result.getTaskDefinition().getTaskDefinitionArn(); LOGGER.log(Level.FINE, "Slave {0} - Created Task Definition {1}: {2}", new Object[] { label, taskDefinitionArn, req }); LOGGER.log(Level.INFO, "Slave {0} - Created Task Definition: {1}", new Object[] { label, taskDefinitionArn }); getDescriptor().save();//w w w . j a v a2 s.co m } else { LOGGER.log(Level.FINE, "Slave {0} - Task Definition already exists {1}", new Object[] { label, taskDefinitionArn }); } }
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 w w w . j a 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 w w . j a v a 2 s . c o m 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; } }