From 112edbc54a6d07cba44d61cf940e4d38d4165549 Mon Sep 17 00:00:00 2001 From: Matthew Kuntz Date: Wed, 21 Apr 2021 12:03:21 -0400 Subject: [PATCH] fix(ec2): r5ad instance-type has incorrect value (#14179) The InstanceClass enum has incorrectly mapped values for R5AD instances. I am not sure whether this constitutes a breaking change, given that the value is incorrect and would likely not work for any users attempting to launch an R5AD instance. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license* --- .../@aws-cdk/aws-ec2/lib/instance-types.ts | 4 +-- .../@aws-cdk/aws-ec2/test/instance.test.ts | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/packages/@aws-cdk/aws-ec2/lib/instance-types.ts b/packages/@aws-cdk/aws-ec2/lib/instance-types.ts index c9a7f8ac74509..fc3b3b411d7b3 100644 --- a/packages/@aws-cdk/aws-ec2/lib/instance-types.ts +++ b/packages/@aws-cdk/aws-ec2/lib/instance-types.ts @@ -141,12 +141,12 @@ export enum InstanceClass { /** * Memory optimized instances based on AMD EPYC with local NVME drive, 5th generation */ - MEMORY5_AMD_NVME_DRIVE = 'r5a', + MEMORY5_AMD_NVME_DRIVE = 'r5ad', /** * Memory optimized instances based on AMD EPYC with local NVME drive, 5th generation */ - R5AD = 'r5a', + R5AD = 'r5ad', /** * Memory optimized instances that are also EBS-optimized, 5th generation diff --git a/packages/@aws-cdk/aws-ec2/test/instance.test.ts b/packages/@aws-cdk/aws-ec2/test/instance.test.ts index 13fa2554eaabd..d5b77e01ad0ea 100644 --- a/packages/@aws-cdk/aws-ec2/test/instance.test.ts +++ b/packages/@aws-cdk/aws-ec2/test/instance.test.ts @@ -138,6 +138,39 @@ nodeunitShim({ test.done(); }, + 'instances with local NVME drive are correctly named'(test: Test) { + // GIVEN + const sampleInstanceClassKeys = [{ + key: 'R5D', + value: 'r5d', + }, { + key: 'MEMORY5_NVME_DRIVE', + value: 'r5d', + }, { + key: 'R5AD', + value: 'r5ad', + }, { + key: 'MEMORY5_AMD_NVME_DRIVE', + value: 'r5ad', + }, { + key: 'M5AD', + value: 'm5ad', + }, { + key: 'STANDARD5_AMD_NVME_DRIVE', + value: 'm5ad', + }]; // A sample of instances with NVME drives + + for (const instanceClass of sampleInstanceClassKeys) { + // WHEN + const key = instanceClass.key as keyof(typeof InstanceClass); + const instanceType = InstanceClass[key]; + + // THEN + expect(instanceType).toBe(instanceClass.value); + } + + test.done(); + }, 'instance architecture throws an error when instance type is invalid'(test: Test) { // GIVEN const malformedInstanceTypes = ['t4', 't4g.nano.', 't4gnano', ''];