为 AWS::EC2::Instance 实现 BlockDeviceMappings¶
包含您的 Launchpad 蓝图的 URL
https://blueprints.launchpad.net/heat/+spec/implement-ec2instance-bdm
我们应该支持 AWS::EC2::Instance 资源的 BlockDeviceMappings,以与 AWSCloudFormation 兼容。
问题描述¶
目前在 Heat 中,AWS::EC2::Instance 资源只有 ‘Volumes’ 属性来指示要附加的卷,但在 AWSCloudFormation 中有两种定义卷的方式,‘Volumes’ 和 ‘BlockDeviceMappings’,请参阅
http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html
‘Volumes’ 支持 ‘volume_id’,用户可以指定要附加到实例的卷。这种方式已经在 Heat 中实现,但对于批量创建来说不是一个好的方法,因为一个卷不能附加到多个实例。
‘BlockDeviceMappings’ 支持 ‘snapshot_id’,用户可以指定一个快照,然后将从快照创建一个卷,并将该卷附加到实例。这种方式更适合批量创建。
Nova 支持使用块设备映射创建服务器
因此,我们应该支持 AWS::EC2::Instance 资源的 ‘BlockDeviceMappings’。
提议的变更¶
为 AWS::EC2::Instance 资源添加 ‘BlockDeviceMappings’ 属性,特别是用户可以指定 ‘snapshot_id’ 的情况。
备选方案¶
无
实现¶
负责人¶
- 主要负责人
<huangtianhua>
里程碑¶
- 完成目标里程碑
Juno-2
工作项¶
支持 AWS::EC2::Instance 资源的 BlockDeviceMappings
为该变更添加 UT/Tempest 测试
添加一个带有 BlockDeviceMappings 的 AWS::EC2::Instance 模板
依赖项¶
无