为启动配置实现 ‘InstanceId’

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

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

问题描述

在 AWSCloudFormation 中,用户可以指定 ‘InstanceId’ 属性,如果他希望启动配置使用现有实例的设置,请参阅

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/create-lc-with-instanceID.html

实现 ‘InstanceId’ 属性以兼容 AWSCloudFormation 会很好。

提议的变更

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

  2. 将 ‘ImageId’ 和 ‘InstanceType’ 属性更改为可选

  3. 添加 ‘InstanceId’、‘ImageId’ 和 ‘InstanceType’ 的验证,如果不指定 ‘InstanceId’,则另两个属性是必需的

  4. 根据 aws 开发者指南和实现,允许三种情况

  • 不带 ‘InstanceId’,应指定 ‘ImageId’ 和 ‘InstanceType’ 属性,使用旧方法创建新的启动配置。

  • 仅指定 ‘InstanceId’,新的启动配置将具有来自实例的 ‘ImageId’、‘InstanceType’、‘KeyName’ 和 ‘SecurityGroups’ 属性。

  • 指定 ‘InstanceId’ 和其他属性,这些属性将覆盖来自实例的属性。

备选方案

实现

负责人

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

里程碑

完成目标里程碑

Kilo-1

工作项

  • 支持 ‘InstanceId’ 属性

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

依赖项