为 Nuage 插件添加对 host-routes 和 dns_nameservers 选项的支持

https://blueprints.launchpad.net/neutron/+spec/dhcp-host-routes-and-dns-support-for-nuage-plugin

通过 DHCP 选项为 Nuage 插件添加对 host-routes 和 dns_nameservers 选项的支持

问题描述

目前 Nuage 插件不支持通过 DHCP 选项为 Neutron 子网添加主机路由或 DNS 域名服务器。

提议的变更

当前 Nuage 插件不支持 Neutron 通过 DHCP 选项在子网上添加主机路由或 DNS 域名服务器。

Nuage 的 VSP 支持此功能,需要在插件代码中添加支持。

以下 DHCP 选项将被支持
  • DNS 域名服务器

  • 主机路由

提议的更改是支持使用 Neutron DNS 和主机路由创建 DNS 域名服务器和/或主机路由

例如
neutron subnet-create test 192.168.10.0/24

–dns_nameservers list=true 8.8.4.4 8.8.8.8

此操作将创建一个名为 test 的子网,CIDR 为 192.168.10.0/24。域名服务器 8.8.4.4 8.8.8.8 将添加到此子网,这对应于 Nuage 的 VSP 子网中具有相同域名服务器的子网。

Nuage 的 VSP 插件将支持 DNS 域名服务器和主机路由的 CRUD 操作。

备选方案

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

需要在 plugin.py 中进行修改

  • 将创建新的方法 __create_port_gateway。

    此方法将为当前子网和租户创建一个类型为 network:dhcp 的端口

  • 将修改 __validate_create_subnet 方法,以允许 host_routes 键成为子网字典的有效选项

  • 将向插件添加 update_subnet 方法

  • _create_nuage_subnet 方法将合并到 create_subnet 方法中。这个新更新的方法还将使用上述描述的 _create_port_gateway 方法创建一个 DHCP 端口。

负责人

Franck Yelles

主要负责人

fyelles

其他贡献者

工作项

  • Nuage 插件中的扩展代码

  • Nuage CI 覆盖率添加

  • Nuage 单元测试添加,将更新/添加以下测试单元:* test_create_subnet_bad_hostroutes * test_update_subnet_adding_additional_host_routes_and_dns * test_create_subnet_with_one_host_route * test_create_subnet_with_two_host_routes * test_create_subnet_with_too_many_routes * test_update_subnet_route * test_update_subnet_route_to_None * test_update_subnet_route_with_too_many_entries * test_delete_subnet_with_route * test_delete_subnet_with_dns_and_route * test_validate_subnet_host_routes_exhausted * test_validate_subnet_dns_nameservers_exhausted

依赖项

测试

Nuage 单元测试中 DHCP 选项的单元测试覆盖率。Nuage CI 将被修改以开始支持这些扩展测试

文档影响

参考资料