-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[PLAT-9803] Allow AWS universe to use any AWS instance type if runtim…
…e conf is set Summary: 1. Retrieve pricing for all instance types (this doesn't increase file sizes by much). 2. When a runtime conf is set, all AWS instance types from pricing data will be created in the provider. 3. Ephemeral instance types or not are decided based on having a 'd' in the instance type code, which is the AWS convention. Also added the non-d named types to the ephemeral list. Test Plan: 1. Add a unit test and verify a couple of instance types there. 2. Create an AWS universe with c6id.large and verify it is created with local instance storage and SQL queries work. 3. Spot check a few ephemeral instance types. Reviewers: svarshney, yshchetinin Reviewed By: svarshney Subscribers: yugaware Differential Revision: https://phorge.dev.yugabyte.com/D37692
- Loading branch information
Showing
108 changed files
with
238 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file modified
BIN
+351 Bytes
(120%)
managed/src/main/resources/aws_pricing/af-south-1-los-1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+433 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-northeast-1-tpe-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+315 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-northeast-1-wl1-kix1.tar.gz
Binary file not shown.
Binary file modified
BIN
+319 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-northeast-1-wl1-nrt1.tar.gz
Binary file not shown.
Binary file modified
BIN
+47.9 KB
(340%)
managed/src/main/resources/aws_pricing/ap-northeast-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+306 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-northeast-2-wl1-cjj1.tar.gz
Binary file not shown.
Binary file modified
BIN
+316 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-northeast-2-wl1-sel1.tar.gz
Binary file not shown.
Binary file modified
BIN
+31.6 KB
(300%)
managed/src/main/resources/aws_pricing/ap-northeast-2.tar.gz
Binary file not shown.
Binary file modified
BIN
+12.6 KB
(200%)
managed/src/main/resources/aws_pricing/ap-northeast-3.tar.gz
Binary file not shown.
Binary file modified
BIN
+367 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-south-1-ccu-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+356 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-south-1-del-1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+312 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-southeast-1-bkk-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+347 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-southeast-1-mnl-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+43.6 KB
(350%)
managed/src/main/resources/aws_pricing/ap-southeast-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+316 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-southeast-2-akl-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+359 Bytes
(120%)
managed/src/main/resources/aws_pricing/ap-southeast-2-per-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+42.1 KB
(340%)
managed/src/main/resources/aws_pricing/ap-southeast-2.tar.gz
Binary file not shown.
Binary file modified
BIN
+12.3 KB
(220%)
managed/src/main/resources/aws_pricing/ap-southeast-3.tar.gz
Binary file not shown.
Binary file modified
BIN
+6.77 KB
(180%)
managed/src/main/resources/aws_pricing/ap-southeast-4.tar.gz
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+307 Bytes
(120%)
managed/src/main/resources/aws_pricing/ca-central-1-wl1-yto1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+365 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-central-1-ham-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+353 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-central-1-waw-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+324 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-central-1-wl1-ber1.tar.gz
Binary file not shown.
Binary file modified
BIN
+307 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-central-1-wl1-dtm1.tar.gz
Binary file not shown.
Binary file modified
BIN
+312 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-central-1-wl1-muc1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+359 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-north-1-cph-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+366 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-north-1-hel-1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+313 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-west-2-wl1-lon1.tar.gz
Binary file not shown.
Binary file modified
BIN
+318 Bytes
(120%)
managed/src/main/resources/aws_pricing/eu-west-2-wl1-man1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+357 Bytes
(120%)
managed/src/main/resources/aws_pricing/me-south-1-mct-1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+3.5 KB
(180%)
managed/src/main/resources/aws_pricing/us-east-1-atl-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+599 Bytes
(130%)
managed/src/main/resources/aws_pricing/us-east-1-bos-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+205 Bytes
(110%)
managed/src/main/resources/aws_pricing/us-east-1-bue-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+2.46 KB
(150%)
managed/src/main/resources/aws_pricing/us-east-1-chi-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+2.25 KB
(140%)
managed/src/main/resources/aws_pricing/us-east-1-dfw-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+2.19 KB
(150%)
managed/src/main/resources/aws_pricing/us-east-1-iah-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+539 Bytes
(130%)
managed/src/main/resources/aws_pricing/us-east-1-lim-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+273 Bytes
(110%)
managed/src/main/resources/aws_pricing/us-east-1-mci-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+2.11 KB
(150%)
managed/src/main/resources/aws_pricing/us-east-1-mia-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+262 Bytes
(110%)
managed/src/main/resources/aws_pricing/us-east-1-msp-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+370 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-nyc-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+585 Bytes
(130%)
managed/src/main/resources/aws_pricing/us-east-1-phl-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+426 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-qro-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+345 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-scl-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+323 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-atl1.tar.gz
Binary file not shown.
Binary file modified
BIN
+622 Bytes
(130%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-bna1.tar.gz
Binary file not shown.
Binary file modified
BIN
+319 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-chi1.tar.gz
Binary file not shown.
Binary file modified
BIN
+624 Bytes
(130%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-clt1.tar.gz
Binary file not shown.
Binary file modified
BIN
+313 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-dfw1.tar.gz
Binary file not shown.
Binary file modified
BIN
+318 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-dtw1.tar.gz
Binary file not shown.
Binary file modified
BIN
+325 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-iah1.tar.gz
Binary file not shown.
Binary file modified
BIN
+317 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-mia1.tar.gz
Binary file not shown.
Binary file modified
BIN
+334 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-msp1.tar.gz
Binary file not shown.
Binary file modified
BIN
+326 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-nyc1.tar.gz
Binary file not shown.
Binary file modified
BIN
+319 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-tpa1.tar.gz
Binary file not shown.
Binary file modified
BIN
+635 Bytes
(130%)
managed/src/main/resources/aws_pricing/us-east-1-wl1-was1.tar.gz
Binary file not shown.
Binary file modified
BIN
+317 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-east-1-wl1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+21.1 KB
(260%)
managed/src/main/resources/aws_pricing/us-gov-east-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+32.3 KB
(320%)
managed/src/main/resources/aws_pricing/us-gov-west-1.tar.gz
Binary file not shown.
Binary file not shown.
Binary file modified
BIN
+628 Bytes
(130%)
managed/src/main/resources/aws_pricing/us-west-2-den-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+434 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-west-2-hnl-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+266 Bytes
(110%)
managed/src/main/resources/aws_pricing/us-west-2-las-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+3.53 KB
(170%)
managed/src/main/resources/aws_pricing/us-west-2-lax-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+259 Bytes
(110%)
managed/src/main/resources/aws_pricing/us-west-2-pdx-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+2.37 KB
(150%)
managed/src/main/resources/aws_pricing/us-west-2-phx-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+257 Bytes
(110%)
managed/src/main/resources/aws_pricing/us-west-2-sea-1.tar.gz
Binary file not shown.
Binary file modified
BIN
+317 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-west-2-wl1-den1.tar.gz
Binary file not shown.
Binary file modified
BIN
+316 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-west-2-wl1-las1.tar.gz
Binary file not shown.
Binary file modified
BIN
+318 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-west-2-wl1-lax1.tar.gz
Binary file not shown.
Binary file modified
BIN
+319 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-west-2-wl1-phx1.tar.gz
Binary file not shown.
Binary file modified
BIN
+314 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-west-2-wl1-sea1.tar.gz
Binary file not shown.
Binary file modified
BIN
+325 Bytes
(120%)
managed/src/main/resources/aws_pricing/us-west-2-wl1.tar.gz
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
{ | ||
"date": "2024-06-12" | ||
"date": "2024-09-22" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
106 changes: 106 additions & 0 deletions
106
managed/src/test/java/com/yugabyte/yw/cloud/aws/AWSInitializerTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
package com.yugabyte.yw.cloud.aws; | ||
|
||
import static org.junit.Assert.assertEquals; | ||
import static org.junit.Assert.assertTrue; | ||
|
||
import com.yugabyte.yw.commissioner.Common.CloudType; | ||
import com.yugabyte.yw.common.FakeDBApplication; | ||
import com.yugabyte.yw.common.ModelFactory; | ||
import com.yugabyte.yw.forms.UniverseDefinitionTaskParams; | ||
import com.yugabyte.yw.models.AvailabilityZone; | ||
import com.yugabyte.yw.models.Customer; | ||
import com.yugabyte.yw.models.InstanceType; | ||
import com.yugabyte.yw.models.Provider; | ||
import com.yugabyte.yw.models.ProviderDetails; | ||
import com.yugabyte.yw.models.ProviderDetails.CloudInfo; | ||
import com.yugabyte.yw.models.Region; | ||
import com.yugabyte.yw.models.RuntimeConfigEntry; | ||
import com.yugabyte.yw.models.helpers.provider.AWSCloudInfo; | ||
import java.util.Arrays; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.junit.Before; | ||
import org.junit.Test; | ||
|
||
@Slf4j | ||
public class AWSInitializerTest extends FakeDBApplication { | ||
|
||
private Customer customer; | ||
private Provider defaultProvider; | ||
private Region defaultRegion; | ||
AWSInitializer awsInitializer; | ||
|
||
@Before | ||
public void setup() { | ||
customer = ModelFactory.testCustomer(); | ||
defaultProvider = ModelFactory.awsProvider(customer); | ||
defaultRegion = new Region(); | ||
defaultRegion.setProvider(defaultProvider); | ||
defaultRegion.setCode("us-east-2"); | ||
defaultRegion.setName("us-east-2"); | ||
AvailabilityZone az = new AvailabilityZone(); | ||
az.setCode("us-east-2a"); | ||
az.setName("us-east-2a"); | ||
defaultRegion.setZones(Arrays.asList(az)); | ||
defaultProvider.getRegions().add(defaultRegion); | ||
ProviderDetails providerDetails = new ProviderDetails(); | ||
CloudInfo cloudInfo = new CloudInfo(); | ||
cloudInfo.aws = new AWSCloudInfo(); | ||
cloudInfo.aws.setAwsAccessKeyID("accessKey"); | ||
cloudInfo.aws.setAwsAccessKeySecret("accessKeySecret"); | ||
providerDetails.setCloudInfo(cloudInfo); | ||
defaultProvider.setDetails(providerDetails); | ||
defaultProvider.save(); | ||
} | ||
|
||
@Test | ||
public void testAWSInitializerAllInstanceTypes() { | ||
|
||
assertTrue( | ||
UniverseDefinitionTaskParams.hasEphemeralStorage(CloudType.aws, "x2gd.12xlarge", null)); | ||
assertTrue( | ||
UniverseDefinitionTaskParams.hasEphemeralStorage(CloudType.aws, "i3en.2xlarge", null)); | ||
|
||
RuntimeConfigEntry.upsertGlobal("yb.internal.allow_unsupported_instances", "true"); | ||
awsInitializer = app.injector().instanceOf(AWSInitializer.class); | ||
awsInitializer.initialize(customer.getUuid(), defaultProvider.getUuid()); | ||
|
||
InstanceType c6a4x = InstanceType.get(defaultProvider.getUuid(), "c6a.4xlarge"); | ||
assertEquals(16, (int) c6a4x.getNumCores().doubleValue()); | ||
assertEquals(32, (int) c6a4x.getMemSizeGB().doubleValue()); | ||
|
||
InstanceType c6id4x = InstanceType.get(defaultProvider.getUuid(), "c6id.4xlarge"); | ||
assertEquals(16, (int) c6id4x.getNumCores().doubleValue()); | ||
assertEquals(32, (int) c6id4x.getMemSizeGB().doubleValue()); | ||
assertEquals(1, c6id4x.getInstanceTypeDetails().volumeDetailsList.size()); | ||
var volDetailsList = c6id4x.getInstanceTypeDetails().volumeDetailsList.get(0); | ||
assertEquals(volDetailsList.volumeType, InstanceType.VolumeType.NVME); | ||
assertEquals(950, volDetailsList.volumeSizeGB.intValue()); | ||
|
||
InstanceType g612x = InstanceType.get(defaultProvider.getUuid(), "g6.12xlarge"); | ||
assertEquals(48, (int) g612x.getNumCores().doubleValue()); | ||
assertEquals(192, (int) g612x.getMemSizeGB().doubleValue()); | ||
assertEquals(4, g612x.getInstanceTypeDetails().volumeDetailsList.size()); | ||
volDetailsList = g612x.getInstanceTypeDetails().volumeDetailsList.get(0); | ||
assertEquals(volDetailsList.volumeType, InstanceType.VolumeType.NVME); | ||
assertEquals(940, volDetailsList.volumeSizeGB.intValue()); | ||
} | ||
|
||
@Test | ||
public void testAWSInitializerAllowedInstanceTypes() { | ||
RuntimeConfigEntry.upsertGlobal("yb.internal.allow_unsupported_instances", "false"); | ||
awsInitializer = app.injector().instanceOf(AWSInitializer.class); | ||
awsInitializer.initialize(customer.getUuid(), defaultProvider.getUuid()); | ||
|
||
InstanceType c6a4x = InstanceType.get(defaultProvider.getUuid(), "c6a.4xlarge"); | ||
assertEquals(16, (int) c6a4x.getNumCores().doubleValue()); | ||
assertEquals(32, (int) c6a4x.getMemSizeGB().doubleValue()); | ||
|
||
InstanceType c6id4x = null; | ||
try { | ||
c6id4x = InstanceType.get(defaultProvider.getUuid(), "c6id.4xlarge"); | ||
} catch (Exception ex) { | ||
// ignore | ||
} | ||
assertEquals(null, c6id4x); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.