JCLOUDS-1460: Adding instances to AWS

This commit is contained in:
Trent Schmidt 2018-10-08 10:40:21 -07:00 committed by Dani Estevez
parent 53c011a3bc
commit e4c99a0797
3 changed files with 258 additions and 5 deletions

View File

@ -228,7 +228,13 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return this;
}
private EC2HardwareBuilder t3() {
virtualizationType(VirtualizationType.HVM);
return this;
}
private EC2HardwareBuilder m3() {
virtualizationTypes(VirtualizationType.HVM, VirtualizationType.PARAVIRTUAL);
return this;
@ -393,13 +399,22 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.processors(ImmutableList.of(new Processor(1.0, 1.0))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T2_NANO
*/
public static EC2HardwareBuilder t2_nano() {
return new EC2HardwareBuilder(InstanceType.T2_NANO).t2()
.ram(512)
.processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T2_MICRO
*/
public static EC2HardwareBuilder t2_micro() {
return new EC2HardwareBuilder(InstanceType.T2_MICRO).t2()
.ram(1024)
.processors(ImmutableList.of(new Processor(1.0, 0.1))).rootDeviceType(RootDeviceType.EBS);
.processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@ -408,7 +423,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
public static EC2HardwareBuilder t2_small() {
return new EC2HardwareBuilder(InstanceType.T2_SMALL).t2()
.ram(2048)
.processors(ImmutableList.of(new Processor(1.0, 0.2))).rootDeviceType(RootDeviceType.EBS);
.processors(ImmutableList.of(new Processor(1.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@ -417,7 +432,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
public static EC2HardwareBuilder t2_medium() {
return new EC2HardwareBuilder(InstanceType.T2_MEDIUM).t2()
.ram(4096)
.processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
.processors(ImmutableList.of(new Processor(2.0, 3.3))).rootDeviceType(RootDeviceType.EBS);
}
/**
@ -426,9 +441,92 @@ public class EC2HardwareBuilder extends HardwareBuilder {
public static EC2HardwareBuilder t2_large() {
return new EC2HardwareBuilder(InstanceType.T2_LARGE).t2()
.ram(8192)
.processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
.processors(ImmutableList.of(new Processor(2.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T2_XLARGE
*/
public static EC2HardwareBuilder t2_xlarge() {
return new EC2HardwareBuilder(InstanceType.T2_XLARGE).t2()
.ram(16384)
.processors(ImmutableList.of(new Processor(4.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T2_2XLARGE
*/
public static EC2HardwareBuilder t2_2xlarge() {
return new EC2HardwareBuilder(InstanceType.T2_2XLARGE).t2()
.ram(32768)
.processors(ImmutableList.of(new Processor(8.0, 3.0))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T3_NANO
*/
public static EC2HardwareBuilder t3_nano() {
return new EC2HardwareBuilder(InstanceType.T3_NANO).t3()
.ram(512)
.processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T3_MICRO
*/
public static EC2HardwareBuilder t3_micro() {
return new EC2HardwareBuilder(InstanceType.T3_MICRO).t3()
.ram(1024)
.processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T3_SMALL
*/
public static EC2HardwareBuilder t3_small() {
return new EC2HardwareBuilder(InstanceType.T3_SMALL).t3()
.ram(2048)
.processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T3_MEDIUM
*/
public static EC2HardwareBuilder t3_medium() {
return new EC2HardwareBuilder(InstanceType.T3_MEDIUM).t3()
.ram(4096)
.processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T3_LARGE
*/
public static EC2HardwareBuilder t3_large() {
return new EC2HardwareBuilder(InstanceType.T3_LARGE).t3()
.ram(8192)
.processors(ImmutableList.of(new Processor(2.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T3_XLARGE
*/
public static EC2HardwareBuilder t3_xlarge() {
return new EC2HardwareBuilder(InstanceType.T3_XLARGE).t3()
.ram(16384)
.processors(ImmutableList.of(new Processor(4.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T3_2XLARGE
*/
public static EC2HardwareBuilder t3_2xlarge() {
return new EC2HardwareBuilder(InstanceType.T3_2XLARGE).t3()
.ram(32768)
.processors(ImmutableList.of(new Processor(8.0, 2.5))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M1_LARGE
*/
@ -605,6 +703,17 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M4_16XLARGE
*/
public static EC2HardwareBuilder m4_16xlarge() {
return new EC2HardwareBuilder(InstanceType.M4_16XLARGE).m4()
.ram(262144)
.processors(ImmutableList.of(new Processor(64.0, 3.1125)))
.is64Bit(true)
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M5_LARGE
*/

View File

@ -29,6 +29,17 @@ public class InstanceType {
*/
public static final String T1_MICRO = "t1.micro";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>512 MB memory</li>
* <li>1 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T2_NANO = "t2.nano";
/**
* Micro Burstable Performance Instance
* <ul>
@ -73,6 +84,105 @@ public class InstanceType {
*/
public static final String T2_LARGE = "t2.large";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>16 GB memory</li>
* <li>4 vCPU / 40% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T2_XLARGE = "t2.xlarge";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>32 GB memory</li>
* <li>8 vCPU / 40% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T2_2XLARGE = "t2.2xlarge";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>512 MB memory</li>
* <li>2 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T3_NANO = "t3.nano";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>1 GB memory</li>
* <li>2 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T3_MICRO = "t3.micro";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>2 GB memory</li>
* <li>2 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T3_SMALL = "t3.small";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>4 GB memory</li>
* <li>2 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T3_MEDIUM = "t3.medium";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>8 GB memory</li>
* <li>2 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T3_LARGE = "t3.large";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>16 GB memory</li>
* <li>4 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T3_XLARGE = "t3.xlarge";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>32 GB memory</li>
* <li>8 vCPU / 10% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T3_2XLARGE = "t3.2xlarge";
/**
* Small Instance
* <ul>
@ -268,6 +378,18 @@ public class InstanceType {
*/
public static final String M4_10XLARGE = "m4.10xlarge";
/**
* M4 Sexdecuple Extra Large Instance
* <ul>
* <li>256 GiB memory</li>
* <li>199.2 EC2 Compute Units (64 virtual cores with 3.1125 EC2 Compute Units each)</li>
* <li>EBS storage only</li>
* <li>64-bit platform</li>
* <li>I/O Performance: High</li>
* </ul>
*/
public static final String M4_16XLARGE = "m4.16xlarge";
/**
* M5 Large Instance
* <ul>

View File

@ -60,6 +60,7 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_10xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_16xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_large;
@ -85,7 +86,17 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t1_micro;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_micro;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_nano;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_small;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_nano;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_micro;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_small;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_medium;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t3_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.x1_16xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.x1_32xlarge;
@ -122,10 +133,20 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(g2_2xlarge().supportsImageIds(ccAmis).build());
sizes.add(t1_micro().build());
sizes.add(t2_nano().build());
sizes.add(t2_micro().build());
sizes.add(t2_small().build());
sizes.add(t2_medium().build());
sizes.add(t2_large().build());
sizes.add(t2_xlarge().build());
sizes.add(t2_2xlarge().build());
sizes.add(t3_nano().build());
sizes.add(t3_micro().build());
sizes.add(t3_small().build());
sizes.add(t3_medium().build());
sizes.add(t3_large().build());
sizes.add(t3_xlarge().build());
sizes.add(t3_2xlarge().build());
sizes.add(c1_medium().build());
sizes.add(c1_xlarge().build());
sizes.add(c3_large().build());
@ -164,6 +185,7 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(m4_2xlarge().build());
sizes.add(m4_4xlarge().build());
sizes.add(m4_10xlarge().build());
sizes.add(m4_16xlarge().build());
sizes.add(m5_large().build());
sizes.add(m5_xlarge().build());
sizes.add(m5_2xlarge().build());