cloudtools / cloudtools/troposphere
Stack formation fails when 'Throughput' is specified for the EBSBlockDevice class parameters, though the parameter is listed as valid
- 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
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