跳转到: 导航, 搜索

Neutron/nvp-dhcp-metadata-multimode-support

范围

当前 NVP 插件的 DHCP 和元数据服务实现依赖于外部 DHCP 和元数据代理,分别实现 DHCP 和代理服务到 Nova 元数据服务器。此蓝图旨在使插件能够采用替代方案,例如非基于代理的方案。

用例

能够利用 NVP 平台本身或任何其他外部方提供的 DHCP 和元数据服务。

实现概述

当前插件从一个 mixin 类继承来处理元数据流量;对 DHCP 代理的调用散布在代码中。此蓝图实现旨在通过采用委托来改进当前结构。mixin 类将保留,但它将不再涉及实现基于代理的元数据和 DHCP 服务,而是关于将功能中继给委托。根据代理模式,委托可以实现基于代理或无代理的功能。

数据模型变更

配置变量

将引入新的配置变量

  • agent_mode

'agent_mode' 变量指定插件需要以哪种模式运行,以便为租户实例提供 DHCP 和元数据代理服务。如果选择 'agent'(默认),NVP 插件依赖于外部 RPC 代理(即 DHCP 和元数据代理)来提供这些服务。在此模式下,插件支持 API 扩展 'agent' 和 'dhcp_agent_scheduler'。如果选择 'agentless'(Havana 中的实验性功能),插件将使用 NVP 逻辑服务进行 DHCP 和元数据代理。这简化了 Neutron 的部署模型,因为插件不再需要 RPC 代理即可运行。当选择 'agentless' 时,配置选项 metadata_mode 将失效。'agentless' 模式只能与 NVP 3.3 或更高版本配合使用。还可以引入另一种模式,称为 hybrid,可用于处理从一种模式到另一种模式的迁移。但是,这超出了蓝图的范围。

API

没有直接的 API 更改,但是当选择 agentless 模式时,与 Agent 和 DHCP Agent Scheduler 扩展相关的 API 调用将返回 404 Not Found。

插件接口

Neutron 插件没有更改。

CLI 要求

CLI 没有更改。

Horizon 要求

GUI 不需要更改。

测试用例

没有非常规之处。