Heat/VPC 资源支持
OpenStack Networking 在 Folsom 版本中集成,并且由于 OS Networking 和 Virtual Private Cloud 之间存在良好的契合度,Heat 团队决定在 Grizzly 版本中实现 AWS VPC 资源。
下表描述了 Heat 中 VPC 的当前支持情况,但请注意,由于 Heat 团队正在弥补差距,它可能已过时 :-)
| CloudFormation 资源 | Heat 实现 | 备注 |
|---|---|---|
| AWS::EC2::VPC | 部分 | 创建一个网络和一个路由器。 网络的内部 ID 用于 VpcId 属性。 不支持 CidrBlock 属性,它被接受但未使用。 不支持 InstanceTenancy 属性。它定义了在 VPC 中启动的实例的租户模式:默认(=共享或专用硬件)或专用(=仅专用硬件)。 |
| AWS::EC2::Subnet | 部分 | 创建一个子网并将子网与网络的路由器关联。 Networking 中不支持 AvailabilityZone 属性。 |
| AWS::EC2::NetworkInterface | 部分 | 创建一个端口。 GroupSet 属性映射到 OpenStack Networking 中的现有安全组。 OpenStack Networking 中不支持 Description 属性。 OpenStack Networking 中不支持 SourceDestCheck 属性。默认情况下,EC2 实例不会接收未发送到其任何私有 IP 地址的流量。必须关闭此标志才能用于 NAT 实例。 |
| AWS::EC2::InternetGateway | 正常 | 将网络的全部路由器与外部网络关联。 创建不会生成额外的 Networking 资源,但必须先存在一个(且仅有一个)具有属性 'router:external' 的网络。 |
| AWS::EC2::CustomerGateway | 无 | 尚未有等效项。 |
| AWS::EC2::VPNGateway | 无 | 尚未有等效项。 |
| AWS::EC2::VPNConnection | 无 | 尚未有等效项。 |
| AWS::EC2::VPCGatewayAttachment | 部分 | AWS::EC2::VPCGatewayAttachment 创建将 VPC 网络的所有路由器与外部网络关联。 尚未支持 VpnGatewayId 属性。 |
| AWS::EC2::RouteTable | 部分 | 创建一个新的路由器,该路由器将添加到与 VpcId 关联的 Neutron 网络。 |
| AWS::EC2::SubnetRouteTableAssocation | 部分 | 将子网(SubnetId 属性)与给定的路由器(RouteTableId 属性)关联。 |
| AWS::EC2::Route | 无 | 尚未有等效项。 |
| AWS::EC2::DHCPOptions | 无 | 不支持,但子网具有“DNS nameservers”属性。 |
| AWS::EC2::VPCDHCPOptionsAssociation | 无 | OpenStack Networking(DHCP 选项应用于子网)和 VPC(DHCP 选项应用于网络)之间存在不匹配。 |
| AWS::EC2::NetworkAcl | 无 | 尚未有等效项。 |
| AWS::EC2::NetworkAclEntry | 无 | 尚未有等效项。 |
| AWS::EC2::SubnetNetworkAclAssocation | 无 | 尚未有等效项。 |
| AWS::EC2::SecurityGroup | 部分 | 映射到 Nova 安全组。如果不存在具有相同名称的组,则创建一个安全组。 应更新为在传递 VpcId 属性时创建/修改 Neutron 安全组(请参阅 https://blueprints.launchpad.net/heat/+spec/quantum-security-group)。 |
| AWS::EC2::SecurityGroupIngress | 部分 | 部分资源封装在 AWS::EC2::SecurityGroup 资源中。应为完全支持而成为一个独立的资源。 |
| AWS::EC2::SecurityGroupEgress | 无 | 尚未有等效项。 |
| AWS::EC2::EIP | 部分 | 浮动 IP 地址的创建依赖于 Nova,Nova 将请求代理到 OpenStack Networking。 定义分配浮动 IP 地址的网络名称由 nova.conf 中的 default_floating_pool 参数定义(默认值:“nova”) |
| AWS::EC2::EIPAssociation | 部分 | 参见下文 |
与 Heat 中公开的所有 AWS 资源一样,不支持 Tags 属性,但这首先是 Nova 和 Networking 的限制,但有一个 蓝图 用于跟踪该问题。
现有的 VPC/Heat 差距
-
实例资源应实现 SubnetId 属性已修复 -
实例资源应实现 SecurityGroupIds 属性已修复 -
当在 AWS::EC2::SecurityGroup 中指定 VpcId 时,使用 quantum 安全组已实现 -
AWS::EC2::EIP 资源应实现 InstanceId 属性已修复 - AWS::EC2::EIPAssociation 资源应实现 AllocationId 属性
- AWS::EC2::EIPAssociation 资源应实现 NetworkInterfaceId 属性
-
AWS::EC2::Subnet 资源无法引用现有的 VPC已修复 -
AWS::EC2::NetworkInterface 无法引用现有的子网已修复 -
AWS::EC2::VPCGatewayAttachment 无法引用现有的 VPC已修复 -
AWS::EC2::RouteTable 无法引用现有的 VPC已修复 -
AWS::EC2::SubnetRouteTableAssocation 无法引用现有的子网已修复 -
实例资源的 SecurityGroups 属性未应用已修复 - 堆栈删除失败,因为无法删除 VPCGatewayAttachment 资源
-
NetworkInterface 资源的创建失败,因为 GroupSet 属性无效已修复
最后请记住,在 Heat 模板中使用 AWS 资源不是必需的,因为您仍然有机会使用 Networking 资源(目前在 OS::Neutron::* 命名空间中)。如果您不关心 AWS CloudFormation 兼容性,甚至建议坚持使用这些本机资源,因为它们与 Neutron 组件完美匹配。