在 heat 中支持 neutron 子网池

https://blueprints.launchpad.net/heat/+spec/subnet-pools

添加 Neutron 子网池资源插件。

问题描述

Neutron 现在支持 subnetpools API 扩展。 这有助于管理子网池的生命周期,并在子网创建/更新期间使用它,如下所示。

neutron subnetpool-create –default-prefixlen 24 –pool-prefix \
    10.10.0.0/16 webpool
neutron subnet-create –subnetpool webpool websubnet

提议的变更

  1. 在 resources/openstack/neutron/ 下添加以下资源:

  • OS::Neutron::SubnetPool

    • name

      要创建的子网池的名称。 - 可选 - 类型:String - update_allowed

    • prefixes

      要分配给子网池的子网前缀列表。 - 必需 - 类型:List - update_allowed - 约束:非空的 CIDR 列表

    • address_scope

      要分配给子网池的地址范围。 - 可选 - 类型:String - update_allowed - 约束:‘neutron.address_scope’ 自定义约束

    • default_quota

      可以从子网池为租户子网分配的租户级前缀空间配额。 - 可选 - 类型:Integer - update_allowed - 约束:大于或等于 0

    • default_prefixlen

      在未指定子网的 cidr 或 prefixlen 属性时要分配的前缀大小。 如果未指定,则默认为 min_prefixlen。 - 可选 - 类型:Integer - update_allowed - 约束:大于或等于 0

    • min_prefixlen

      可以从子网池分配的最小前缀。 - 可选 - 类型:Integer - update_allowed - 约束:大于或等于 0

    • max_prefixlen

      可以从子网池分配的最大前缀。 - 可选 - 类型:Integer - update_allowed - 约束:大于或等于 0

    • is_default

      这是否为默认 IPv4/IPv6 子网池。 每个 IP 族只能有一个默认子网池。 - 可选 - 类型:Boolean - update_allowed

    • tenant_id

      拥有子网池的租户的 ID。 只有管理员才能指定与其自身不同的租户 ID。 - 可选 - 类型:String

    • 共享

      是否在所有租户之间共享,默认为 False。 - 可选 - 类型:Boolean

  1. 为 OS::Neutron::Subnet 资源添加 ‘subnetpool’ 和 ‘prefixlen’ 属性。 此外,将自定义约束 ‘neutron.subnetpool’ 应用于 ‘subnetpool’ 属性。

备选方案

实现

负责人

主要负责人

ramishra@redhat.com

里程碑

完成目标里程碑

mitaka-2

工作项

  • 添加 SubnetPool 资源

  • 添加 Subnet 资源的属性

  • 添加所需的自定义约束 (neutron.address_scope, neutron.subnetpool)

  • 添加相关测试

  • 在 heat-templates 中添加使用 SubnetPool 的示例模板

依赖项