允许指定浮动 IP 地址

Launchpad蓝图

https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address

问题描述

浮动 IP 地址通常从 IP 池中自动分配。

在某些情况下,用户希望指定浮动 IP 地址。

提议的变更

将浮动 IP 地址作为创建浮动 IP 的 API 的一个属性添加。属性名称为 floating_ip_address。

API 的属性受 “policy.json” 限制。默认情况下,非管理员用户无法使用 floating_ip_address。管理员可以使用它。(“rule:admin_only”)

备选方案

数据模型影响

REST API 影响

  • floating_ip_address 将被允许用于 POST /v2.0/floatingips

  • 它不可更新。即,不能用于 PUT /v2.0/floatingips

属性映射将更改如下。

RESOURCE_ATTRIBUTE_MAP = {
    ...
    'floatingips': {
        ...
        'floating_ip_address': {'allow_post': True, 'allow_put': False,
                                'validate': {'type:ip_address_or_none': None},
                                'is_visible': True, 'default': None,
                                'enforce_policy': True},
        ...
    },
    ...
}

安全影响

OpenStack 的管理员应考虑是否将此功能暴露给租户用户。

如果用户有权使用此功能,用户可以控制公共 IP 地址。

通知影响

其他最终用户影响

性能影响

IPv6 影响

其他部署者影响

开发人员影响

社区影响

实现

负责人

主要负责人

fujioka-yuuichi-d

工作项

  1. 向 API 添加属性

  2. 在 tempest 中创建测试用例

依赖项

测试

Tempest 测试

将添加以下测试。

  • API 测试

    • 允许的用户可以使用新参数

  • 场景测试

    • 创建的浮动 IP 地址可访问

功能测试

将添加以下测试。

  • 允许的用户可以使用新参数

API 测试

将添加以下测试。

  • 所有传递/不传递参数的模式。

文档影响

用户文档

将在 API 文档中添加新的属性。

开发人员文档

参考资料

https://review.openstack.org/#/c/70286/