允许在创建共享网络端口时创建默认记录¶
https://bugs.launchpad.net/neutron/+bug/1843218
如上方的 bug 线程中所讨论,我们可以添加一项功能,允许用户在共享网络上配置默认区域。
问题描述¶
在 Neutron 中,当启用 DNS ML2 插件时,每个用户可以管理自己的网络,并为该网络配置一个 dns_domain(例如 example.com)。该 dns_domain(称为区域)只能由一个租户托管。要在一个区域中创建记录,该记录的租户必须与该区域的租户相同。如果用户在该网络中创建端口,则必须与区域相同的租户才能创建记录。
网络(项目 A) <~~> 端口(项目 B) <==> 区域(项目 B) <==> 记录(项目 B)
因此,为了使此功能正常工作,所有这些资源都必须托管在同一个项目(端口、区域和记录)上。
由于端口可以从不同的项目创建,在共享网络的情况下,此功能无法正常工作。
提议的变更¶
如 RFE 中所述,其想法是让网络的管理员用户在网络上的默认 dns_domain 中配置关键字,以允许每个用户或每个项目拥有不同的区域。
以下是接受的关键字
<project_id>
<project_name>
<user_name>
<user_id>
例如,将 <user_name>.<project_id>.example.com. 配置为任何网络上的 dns_domain,将允许用户拥有每个用户和每个项目一个默认区域,然后能够创建记录。
$ source openrc_admin
$ openstack network set --dns-domain "<user_name>.<project_id>.example.com." shared
$ source openrc_demo
$ openstack zone create --email dnsmaster@defaultzone.com UserName.HisProjectId.example.com.
$ openstack port create --dns-name myport port
进一步的更改包括
文档:api-ref。
neutron-lib 适配
neutron dns_integration ML2 驱动适配
dns_integration 单元测试
dns_integration 集成测试
计划影响¶
预计升级没有影响。
预计配置没有影响。
没有破坏性更改
参考资料¶
此规范的 RFE bug 报告:https://bugs.launchpad.net/neutron/+bug/1843218
Neutron Drivers 会议关于功能验证的讨论:http://eavesdrop.openstack.org/meetings/neutron_drivers/2019/neutron_drivers.2019-10-04-14.00.log.html#l-171