为自动伸缩组实现‘InstanceId’

https://blueprints.launchpad.net/heat/+spec/implement-instanceid-for-autoscalinggroup

我们应该支持 AWS::AutoScaling::AutoScalingGroup 资源的 ‘InstanceId’ 属性,以兼容 AWSCloudFormation。

问题描述

在 AWSCloudFormation 中,用户可以指定 ‘InstanceId’ 属性,如果他想创建一个使用现有实例而不是启动配置的自动伸缩组,请参阅

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html

现在在 Heat 中,AWS::AutoScaling::AutoScalingGroup 资源只有 ‘LaunchConfigurationName’ 属性,实现 ‘InstanceId’ 属性会很好。

提议的变更

  1. 将 ‘LaunchConfigurationName’ 更改为可选属性

  2. 添加 ‘InstanceId’ 属性,可选且不可更新

  3. 为 AWS::AutoScaling::AutoScalingGroup 资源添加验证,确保选择这两个属性中的一个

  4. 修改 _get_conf_properties() 函数

    • 如果指定 ‘InstanceId’,则获取实例的属性,并创建一个临时启动配置资源,然后返回资源及其属性。

      请注意,这些属性包括 ImageId、InstanceType、KeyName、SecurityGroups。

    • 如果没有 ‘InstanceId’,则使用旧方法获取启动配置资源及其属性。

备选方案

实现

负责人

主要负责人:huangtianhua <huangtianhua@huawei.com>

里程碑

完成目标里程碑

Kilo-1

工作项

  • 支持 ‘InstanceId’ 属性

  • 为该变更添加 UT/Tempest 测试

依赖项