JCLOUDS-1372: Add support for R4 instance types

This commit is contained in:
Ignasi Barrera 2018-01-16 12:28:19 +01:00
parent 382c9201e3
commit ec20f05b68
3 changed files with 150 additions and 6 deletions

View File

@ -250,7 +250,6 @@ public class EC2HardwareBuilder extends HardwareBuilder {
} }
// TODO include D2 (dense) types? // TODO include D2 (dense) types?
@SuppressWarnings("unused")
private EC2HardwareBuilder d2() { private EC2HardwareBuilder d2() {
virtualizationTypes(VirtualizationType.HVM); virtualizationTypes(VirtualizationType.HVM);
return this; return this;
@ -261,6 +260,12 @@ public class EC2HardwareBuilder extends HardwareBuilder {
return this; return this;
} }
private EC2HardwareBuilder r4() {
virtualizationTypes(VirtualizationType.HVM);
rootDeviceType(RootDeviceType.EBS);
return this;
}
private EC2HardwareBuilder g2() { private EC2HardwareBuilder g2() {
virtualizationTypes(VirtualizationType.HVM); virtualizationTypes(VirtualizationType.HVM);
return this; return this;
@ -1015,6 +1020,60 @@ public class EC2HardwareBuilder extends HardwareBuilder {
new VolumeBuilder().type(LOCAL).size(320.0f).device("/dev/sdc").bootDevice(false).durable(false).build())); new VolumeBuilder().type(LOCAL).size(320.0f).device("/dev/sdc").bootDevice(false).durable(false).build()));
} }
/**
* @see InstanceType#R4_LARGE
*/
public static EC2HardwareBuilder r4_large() {
return new EC2HardwareBuilder(InstanceType.R4_LARGE).r4()
.ram(15616)
.processors(ImmutableList.of(new Processor(2.0, 2.3)));
}
/**
* @see InstanceType#R4_XLARGE
*/
public static EC2HardwareBuilder r4_xlarge() {
return new EC2HardwareBuilder(InstanceType.R4_XLARGE).r4()
.ram(31232)
.processors(ImmutableList.of(new Processor(4.0, 2.3)));
}
/**
* @see InstanceType#R4_2XLARGE
*/
public static EC2HardwareBuilder r4_2xlarge() {
return new EC2HardwareBuilder(InstanceType.R4_2XLARGE).r4()
.ram(62464)
.processors(ImmutableList.of(new Processor(8.0, 2.3)));
}
/**
* @see InstanceType#R4_4XLARGE
*/
public static EC2HardwareBuilder r4_4xlarge() {
return new EC2HardwareBuilder(InstanceType.R4_4XLARGE).r4()
.ram(124928)
.processors(ImmutableList.of(new Processor(16.0, 2.3)));
}
/**
* @see InstanceType#R4_8XLARGE
*/
public static EC2HardwareBuilder r4_8xlarge() {
return new EC2HardwareBuilder(InstanceType.R4_8XLARGE).r4()
.ram(249856)
.processors(ImmutableList.of(new Processor(32.0, 2.3)));
}
/**
* @see InstanceType#R4_16XLARGE
*/
public static EC2HardwareBuilder r4_16xlarge() {
return new EC2HardwareBuilder(InstanceType.R4_16XLARGE).r4()
.ram(499712)
.processors(ImmutableList.of(new Processor(64.0, 2.3)));
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public Hardware build() { public Hardware build() {

View File

@ -575,7 +575,6 @@ public class InstanceType {
*/ */
public static final String I2_8XLARGE = "i2.8xlarge"; public static final String I2_8XLARGE = "i2.8xlarge";
/** /**
* R3 Large Memory Optimized * R3 Large Memory Optimized
* <ul> * <ul>
@ -633,4 +632,76 @@ public class InstanceType {
* </ul> * </ul>
*/ */
public static final String R3_8XLARGE = "r3.8xlarge"; public static final String R3_8XLARGE = "r3.8xlarge";
/**
* R4 Large Memory Optimized
* <ul>
* <li>15.25 GB memory</li>
* <li>2 vCPU</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* <li>Network Performance: up to 10 Gigabit</li>
* </ul>
*/
public static final String R4_LARGE = "r4.large";
/**
* R4 Extra Large Memory Optimized
* <ul>
* <li>30.5 GB memory</li>
* <li>4 vCPU</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* <li>Network Performance: up to 10 Gigabit</li>
* </ul>
*/
public static final String R4_XLARGE = "r4.xlarge";
/**
* R4 Double Extra Large Memory Optimized
* <ul>
* <li>61 GB memory</li>
* <li>8 vCPU</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* <li>Network Performance: up to 10 Gigabit</li>
* </ul>
*/
public static final String R4_2XLARGE = "r4.2xlarge";
/**
* R4 Quadruple Extra Large Memory Optimized
* <ul>
* <li>122 GB memory</li>
* <li>16 vCPU</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* <li>Network Performance: up to 10 Gigabit</li>
* </ul>
*/
public static final String R4_4XLARGE = "r4.4xlarge";
/**
* R4 Octuple Extra Large Memory Optimized
* <ul>
* <li>244 GB memory</li>
* <li>32 vCPU</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* <li>Network Performance: 10 Gigabit</li>
* </ul>
*/
public static final String R4_8XLARGE = "r4.8xlarge";
/**
* R4 16x Extra Large Memory Optimized
* <ul>
* <li>488 GB memory</li>
* <li>64 vCPU</li>
* <li>No instance storage (EBS storage only)</li>
* <li>64-bit platform</li>
* <li>Network Performance: 25 Gigabit</li>
* </ul>
*/
public static final String R4_16XLARGE = "r4.16xlarge";
} }

View File

@ -63,22 +63,30 @@ 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_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r3_large; 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.r3_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_16xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_2xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_4xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_8xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.r4_xlarge;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t1_micro; 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_large;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_medium; 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_micro;
import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_small; import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.t2_small;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.Set; import java.util.Set;
import com.google.common.collect.ImmutableSet; import javax.inject.Inject;
import com.google.common.collect.ImmutableSet.Builder; import javax.inject.Singleton;
import org.jclouds.aws.ec2.compute.config.ClusterCompute; import org.jclouds.aws.ec2.compute.config.ClusterCompute;
import org.jclouds.compute.domain.Hardware; import org.jclouds.compute.domain.Hardware;
import org.jclouds.ec2.compute.suppliers.EC2HardwareSupplier; import org.jclouds.ec2.compute.suppliers.EC2HardwareSupplier;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSet.Builder;
@Singleton @Singleton
public class AWSEC2HardwareSupplier extends EC2HardwareSupplier { public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
@ -141,6 +149,12 @@ public class AWSEC2HardwareSupplier extends EC2HardwareSupplier {
sizes.add(r3_2xlarge().build()); sizes.add(r3_2xlarge().build());
sizes.add(r3_4xlarge().build()); sizes.add(r3_4xlarge().build());
sizes.add(r3_8xlarge().build()); sizes.add(r3_8xlarge().build());
sizes.add(r4_large().build());
sizes.add(r4_xlarge().build());
sizes.add(r4_2xlarge().build());
sizes.add(r4_4xlarge().build());
sizes.add(r4_8xlarge().build());
sizes.add(r4_16xlarge().build());
sizes.add(d2_xlarge().build()); sizes.add(d2_xlarge().build());
sizes.add(d2_2xlarge().build()); sizes.add(d2_2xlarge().build());
sizes.add(d2_4xlarge().build()); sizes.add(d2_4xlarge().build());