JCLOUDS-961 - Add d2, m4, t2 instance types for EC2

This commit is contained in:
Andrew Bayer 2015-07-13 16:10:58 +02:00
parent 7d7deefb75
commit 1fe90b03c9
3 changed files with 301 additions and 20 deletions

View File

@ -264,6 +264,15 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#T2_LARGE
*/
public static EC2HardwareBuilder t2_large() {
return new EC2HardwareBuilder(InstanceType.T2_LARGE)
.ram(8192)
.processors(ImmutableList.of(new Processor(1.0, 0.4))).rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M1_LARGE
*/
@ -363,10 +372,10 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return new EC2HardwareBuilder(InstanceType.M3_XLARGE).ram(15360)
.processors(ImmutableList.of(new Processor(4.0, 3.25)))
.is64Bit(true)
.volumes(ImmutableList.<Volume> of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(40.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(40.0f).device("/dev/sdc").bootDevice(false).durable(false).build()));
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(40.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(40.0f).device("/dev/sdc").bootDevice(false).durable(false).build()));
}
/**
@ -374,14 +383,64 @@ public class EC2HardwareBuilder extends HardwareBuilder {
*/
public static EC2HardwareBuilder m3_2xlarge() {
return new EC2HardwareBuilder(InstanceType.M3_2XLARGE).ram(30720)
.processors(ImmutableList.of(new Processor(8.0, 3.25)))
.is64Bit(true)
.volumes(ImmutableList.<Volume> of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(80.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(80.0f).device("/dev/sdc").bootDevice(false).durable(false).build()));
.processors(ImmutableList.of(new Processor(8.0, 3.25)))
.is64Bit(true)
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(80.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(80.0f).device("/dev/sdc").bootDevice(false).durable(false).build()));
}
/**
* @see InstanceType#M4_XLARGE
*/
public static EC2HardwareBuilder m4_xlarge() {
return new EC2HardwareBuilder(InstanceType.M4_XLARGE).ram(16384)
.processors(ImmutableList.of(new Processor(4, 3.25)))
.is64Bit(true)
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M4_LARGE
*/
public static EC2HardwareBuilder m4_large() {
return new EC2HardwareBuilder(InstanceType.M4_LARGE).ram(8192)
.processors(ImmutableList.of(new Processor(2, 3.25)))
.is64Bit(true)
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M4_2XLARGE
*/
public static EC2HardwareBuilder m4_2xlarge() {
return new EC2HardwareBuilder(InstanceType.M4_2XLARGE).ram(32768)
.processors(ImmutableList.of(new Processor(8, 3.25)))
.is64Bit(true)
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M4_4XLARGE
*/
public static EC2HardwareBuilder m4_4xlarge() {
return new EC2HardwareBuilder(InstanceType.M4_4XLARGE).ram(65536)
.processors(ImmutableList.of(new Processor(16, 3.34375)))
.is64Bit(true)
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#M4_10XLARGE
*/
public static EC2HardwareBuilder m4_10xlarge() {
return new EC2HardwareBuilder(InstanceType.M4_10XLARGE).ram(163840)
.processors(ImmutableList.of(new Processor(40.0, 3.1125)))
.is64Bit(true)
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#C1_MEDIUM
*/
@ -389,7 +448,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return new EC2HardwareBuilder(InstanceType.C1_MEDIUM)
.ram(1740)
.processors(ImmutableList.of(new Processor(2.0, 2.5)))
.volumes(ImmutableList.<Volume> of(
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(340.0f).device("/dev/sda2").bootDevice(false).durable(false).build()));
}
@ -401,7 +460,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return new EC2HardwareBuilder(InstanceType.C1_XLARGE)
.ram(7168)
.processors(ImmutableList.of(new Processor(8.0, 2.5)))
.volumes(ImmutableList.<Volume> of(
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(420.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(420.0f).device("/dev/sdc").bootDevice(false).durable(false).build(),
@ -417,7 +476,7 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return new EC2HardwareBuilder(InstanceType.C3_LARGE)
.ram(3750)
.processors(ImmutableList.of(new Processor(2.0, 3.5)))
.volumes(ImmutableList.<Volume> of(
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(16.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(16.0f).device("/dev/sdc").bootDevice(false).durable(false).build()))
@ -530,6 +589,99 @@ public class EC2HardwareBuilder extends HardwareBuilder {
.rootDeviceType(RootDeviceType.EBS);
}
/**
* @see InstanceType#D2_XLARGE
*/
public static EC2HardwareBuilder d2_xlarge() {
return new EC2HardwareBuilder(InstanceType.D2_XLARGE)
.ram(31232)
.processors(ImmutableList.of(new Processor(4.0, 3.5)))
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdc").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdd").bootDevice(false).durable(false).build()))
.is64Bit(true);
}
/**
* @see InstanceType#D2_2XLARGE
*/
public static EC2HardwareBuilder d2_2xlarge() {
return new EC2HardwareBuilder(InstanceType.D2_2XLARGE)
.ram(62464)
.processors(ImmutableList.of(new Processor(8.0, 3.5)))
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdc").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdd").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sde").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdf").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdg").bootDevice(false).durable(false).build()))
.is64Bit(true);
}
/**
* @see InstanceType#D2_4XLARGE
*/
public static EC2HardwareBuilder d2_4xlarge() {
return new EC2HardwareBuilder(InstanceType.D2_4XLARGE)
.ram(124928)
.processors(ImmutableList.of(new Processor(16.0, 3.5)))
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdc").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdd").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sde").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdf").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdg").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdh").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdi").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdj").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdk").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdl").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdm").bootDevice(false).durable(false).build()))
.is64Bit(true);
}
/**
* @see InstanceType#D2_8XLARGE
*/
public static EC2HardwareBuilder d2_8xlarge() {
return new EC2HardwareBuilder(InstanceType.D2_8XLARGE)
.ram(249856)
.processors(ImmutableList.of(new Processor(36.0, 3.5)))
.volumes(ImmutableList.<Volume>of(
new VolumeBuilder().type(LOCAL).size(10.0f).device("/dev/sda1").bootDevice(true).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdb").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdc").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdd").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sde").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdf").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdg").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdh").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdi").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdj").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdk").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdl").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdm").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdn").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdo").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdp").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdq").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdr").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sds").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdt").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdu").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdv").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdw").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdx").bootDevice(false).durable(false).build(),
new VolumeBuilder().type(LOCAL).size(2000.0f).device("/dev/sdy").bootDevice(false).durable(false).build()))
.is64Bit(true);
}
public static EC2HardwareBuilder cg1_4xlarge() {
return new EC2HardwareBuilder(InstanceType.CG1_4XLARGE)
.ram(22 * 1024)

View File

@ -62,6 +62,17 @@ public class InstanceType {
*/
public static final String T2_MEDIUM = "t2.medium";
/**
* Micro Burstable Performance Instance
* <ul>
* <li>8 GB memory</li>
* <li>2 vCPU / 40% baseline performance</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* </ul>
*/
public static final String T2_LARGE = "t2.large";
/**
* Small Instance
* <ul>
@ -196,6 +207,66 @@ public class InstanceType {
* </ul>
*/
public static final String M3_2XLARGE = "m3.2xlarge";
/**
* M4 Large Instance
* <ul>
* <li>8 GiB memory</li>
* <li>6.5 EC2 Compute Units (2 virtual cores with 3.25 EC2 Compute Units each)</li>
* <li>EBS storage only</li>
* <li>64-bit platform</li>
* <li>I/O Performance: Moderate</li>
* </ul>
*/
public static final String M4_LARGE = "m4.large";
/**
* M4 Extra Large Instance
* <ul>
* <li>16 GiB memory</li>
* <li>13 EC2 Compute Units (4 virtual cores with 3.25 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_XLARGE = "m4.xlarge";
/**
* M4 Double Extra Large Instance
* <ul>
* <li>32 GiB memory</li>
* <li>26 EC2 Compute Units (8 virtual cores with 3.25 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_2XLARGE = "m4.2xlarge";
/**
* M4 Quadruple Extra Large Instance
* <ul>
* <li>64 GiB memory</li>
* <li>53.5 EC2 Compute Units (16 virtual cores with 3.34375 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_4XLARGE = "m4.4xlarge";
/**
* M4 Decuple Extra Large Instance
* <ul>
* <li>160 GiB memory</li>
* <li>124.5 EC2 Compute Units (40 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_10XLARGE = "m4.10xlarge";
/**
* High-CPU Medium Instance
@ -416,6 +487,46 @@ public class InstanceType {
*/
public static final String C4_LARGE = "c4.large";
/**
* D2 Dense Storage Extra Large
* <ul>
* <li>30.5 GiB of memory</li>
* <li>4 vCPU</li>
* <li>3 x 2000gb HDD</li>
* </ul>
*/
public static final String D2_XLARGE = "d2.xlarge";
/**
* D2 Dense Storage Double Extra Large
* <ul>
* <li>61 GiB of memory</li>
* <li>8 vCPU</li>
* <li>6 x 2000gb HDD</li>
* </ul>
*/
public static final String D2_2XLARGE = "d2.2xlarge";
/**
* D2 Dense Storage Quadruple Extra Large
* <ul>
* <li>122 GiB of memory</li>
* <li>16 vCPU</li>
* <li>12 x 2000gb HDD</li>
* </ul>
*/
public static final String D2_4XLARGE = "d2.4xlarge";
/**
* D2 Dense Storage Octuple Extra Large
* <ul>
* <li>244 GiB of memory</li>
* <li>36 vCPU</li>
* <li>24 x 2000gb HDD</li>
* </ul>
*/
public static final String D2_8XLARGE = "d2.8xlarge";
/**
* I2 Extra Large
* <ul>

View File

@ -31,6 +31,10 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c4_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cc1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cc2_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.cg1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.d2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.d2_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.d2_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.d2_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.g2_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.hi1_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.hs1_8xlarge;
@ -49,27 +53,31 @@ import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m3_2xlarge;
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_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.m4_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_xlarge;
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_small;
import java.util.Set;
import javax.inject.Inject;
import javax.inject.Singleton;
import org.jclouds.aws.ec2.compute.config.ClusterCompute;
import org.jclouds.compute.domain.Hardware;
import org.jclouds.ec2.compute.suppliers.EC2HardwareSupplier;
import java.util.Set;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet.Builder;
import org.jclouds.aws.ec2.compute.config.ClusterCompute;
import org.jclouds.compute.domain.Hardware;
import org.jclouds.ec2.compute.suppliers.EC2HardwareSupplier;
@Singleton
public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
@ -95,6 +103,7 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(t2_micro().build());
sizes.add(t2_small().build());
sizes.add(t2_medium().build());
sizes.add(t2_large().build());
sizes.add(c1_medium().build());
sizes.add(c1_xlarge().build());
sizes.add(c3_large().build());
@ -122,11 +131,20 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(m3_large().build());
sizes.add(m3_xlarge().build());
sizes.add(m3_2xlarge().build());
sizes.add(m4_large().build());
sizes.add(m4_xlarge().build());
sizes.add(m4_2xlarge().build());
sizes.add(m4_4xlarge().build());
sizes.add(m4_10xlarge().build());
sizes.add(r3_large().build());
sizes.add(r3_xlarge().build());
sizes.add(r3_2xlarge().build());
sizes.add(r3_4xlarge().build());
sizes.add(r3_8xlarge().build());
sizes.add(d2_xlarge().build());
sizes.add(d2_2xlarge().build());
sizes.add(d2_4xlarge().build());
sizes.add(d2_8xlarge().build());
return sizes.build();
}