cloudtools / cloudtools/troposphere

Stack formation fails when 'Throughput' is specified for the EBSBlockDevice class parameters, though the parameter is listed as valid

Open
#2,148 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
4.9k
Forks
1.4k
PR merge metrics
No merged PRs in 30d

Description

When specifying an Ebs in the BlockDeviceMappings, if Throughput is specified, the stack fails formation, stating "Encountered unsupported property Throughput".
Throughput is a stated valid parameter in the EBSBlockDevice class.
We were trying to attach a gp3 volume to a GUI instance at creation and specify a given data throughput. Without this working properly we manually have to adjust the throughput for every user after creation or have to determine a convoluted workaround.

One thing to note is there appear to be 2 classes with very similar names but different accepted parameters: EBSBlockDevice and EbsBlockDevice. The parameter map states 'Ebs': EBSBlockDevice, but then seems to only accept the parameters of the EbsBlockDevice class instead of the EBSBlockDevice class

Example that fails stack formation
instance.BlockDeviceMappings = [
{
'DeviceName': "...",
'Ebs': {
'DeleteOnTermination': True,
'Throughput': 500,
'Iops': 8000,
'VolumeSize': 30,
'VolumeType': 'gp3',
'Encrypted': True
}

Documentation chain:
class Instance
props: {…,"BlockDeviceMappings": ([BlockDeviceMapping], False)}

class BlockDeviceMapping
props: {…, "Ebs": (EBSBlockDevice, False)}

class EBSBlockDevice - props: {…, "Throughput": (integer, False)}

Contributor guide

Open the contributing guide

Research direction

Start by tracing the Instance BlockDeviceMappings entry point through BlockDeviceMapping and the EBSBlockDevice and EbsBlockDevice class definitions, then reproduce the shown gp3 configuration. The work is done when Throughput is accepted for EBSBlockDevice during stack formation without breaking the existing parameter handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
cloud, infrastructure
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.