Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ec2] add gp3 support to EbsDeviceVolumeType #12020

Closed
miztiik opened this issue Dec 11, 2020 · 11 comments
Closed

[ec2] add gp3 support to EbsDeviceVolumeType #12020

miztiik opened this issue Dec 11, 2020 · 11 comments
Assignees
Labels
closing-soon This issue will automatically close in 4 days unless further comments are made. effort/small Small work item – less than a day of effort feature/coverage-gap Gaps in CloudFormation coverage by L2 constructs feature-request A feature should be added or improved. good first issue Related to contributions. See CONTRIBUTING.md p2

Comments

@miztiik
Copy link

miztiik commented Dec 11, 2020

The newly released gp3 volumes are supported by Cloudformation. But aws_cdk.aws_ec2.EbsDeviceVolumeType does not support it yet.
Ref: https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ec2/EbsDeviceVolumeType.html#aws_cdk.aws_ec2.EbsDeviceVolumeType

Work-around:

perf_server = ebs_gp3_perf_server.node.default_child
# Assuming the gp3 volume is the first device in the list, accessed by index '0'
perf_server.add_property_override("BlockDeviceMappings.0.Ebs.VolumeType", "gp3")

Cdk gives you a warning
[Warning at /stack/Ec2Server] iops will be ignored without volumeType: EbsDeviceVolumeType.IO1 But gp3 allows your to have provisioned IOPS

@miztiik miztiik added feature-request A feature should be added or improved. needs-triage This issue or PR still needs to be triaged. labels Dec 11, 2020
@NetaNir NetaNir changed the title gp3 support - Cfn Supports natively but CDK does not [ec2] add gp3 support to EbsDeviceVolumeType Dec 14, 2020
@NetaNir NetaNir added good first issue Related to contributions. See CONTRIBUTING.md and removed needs-triage This issue or PR still needs to be triaged. labels Dec 14, 2020
@NetaNir NetaNir self-assigned this Dec 14, 2020
@NetaNir NetaNir added the effort/small Small work item – less than a day of effort label Dec 14, 2020
@NetaNir
Copy link
Contributor

NetaNir commented Dec 14, 2020

Yup we need to add that type to the enum and modify the conditions to allow it.

@tpunder
Copy link
Contributor

tpunder commented Dec 15, 2020

Don't forget about supporting the Throughput and IOPS configuration for GP3 volumes. It probably makes sense also add in IO2 support at the same time too.

@miztiik
Copy link
Author

miztiik commented Dec 16, 2020

Don't forget about supporting the Throughput and IOPS configuration for GP3 volumes. It probably makes sense also add in IO2 support at the same time too.

Here is the issue for the same - #12052

@SomayaB SomayaB added the p2 label Dec 21, 2020
@kirintwn
Copy link
Contributor

This should be close as #12074 was merged.

@orzikhd
Copy link

orzikhd commented Feb 15, 2021

The change #12074 doesn't include adding GP3 to EmrCreateCluster.EbsBlockDeviceVolumeType

@ericzbeard ericzbeard added the feature/coverage-gap Gaps in CloudFormation coverage by L2 constructs label Apr 2, 2021
@mmuller88
Copy link
Contributor

Just use that downleveling feature like:

const cfnInstance = instance.node.defaultChild as ec2.CfnInstance;
cfnInstance.blockDeviceMappings = [{
        deviceName: '/dev/sda1',
        ebs: {
          deleteOnTermination: true,
          encrypted: false,
          volumeSize: 2 * 300,
          volumeType: 'gp3',
        },
}];

@NetaNir NetaNir removed their assignment Jun 21, 2021
@ArielPrevu3D
Copy link

ArielPrevu3D commented Jul 21, 2021

EbsDeviceOptionsBase needs a throughput option for GP3, to match CloudFormation. It was forgotten in PR #12074 😢

My workaround for a Launch Template in Python:
launch_template.node.default_child.add_property_override("LaunchTemplateData.BlockDeviceMappings.0.Ebs.Throughput", 1000)

@jumic
Copy link
Contributor

jumic commented Aug 15, 2021

There are three topics mentioned in this issue:

@peterwoodworth
Copy link
Contributor

@jumic it would be helpful if you create a new feature request for the throughput property! If that property can be used for every interface that extends EbsDeviceOptionsBase (EbsDeviceOptions and EbsDeviceSnapshotOptions) then it would make sense to add the throughput property here, but let's verify with the area owner first.

If this is a wanted change, a check should be put in place to ensure that the throughput property is set only if the volume type is gp3.

@peterwoodworth peterwoodworth added the closing-soon This issue will automatically close in 4 days unless further comments are made. label Aug 16, 2021
@peterwoodworth peterwoodworth self-assigned this Aug 17, 2021
@github-actions
Copy link

github-actions bot commented Sep 2, 2021

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@pwrmiller
Copy link

@peterwoodworth - This is still an issue in CDK 2.69.0 for AutoScalingGroup block devices. It seems the generic interface has been fixed, but not the interface included with ASG Block Devices (oddly, it uses its own).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closing-soon This issue will automatically close in 4 days unless further comments are made. effort/small Small work item – less than a day of effort feature/coverage-gap Gaps in CloudFormation coverage by L2 constructs feature-request A feature should be added or improved. good first issue Related to contributions. See CONTRIBUTING.md p2
Projects
None yet
Development

No branches or pull requests