Allow to specify floating IP address¶
Launchpad blueprint:
https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address
Problem Description¶
IP Address of floating ip is automatically allocated from IP pool.
In some cases, user want to specify a IP Address of floating ip.
Proposed Change¶
Adding the floating ip address as an attribute to the API for creating floating ip. An attribute name is floating_ip_address.
Attributes of API are limited by “policy.json”. By default, Non-admin user cannot use floating_ip_address. Admin can use it. (“rule:admin_only”)
Alternatives¶
None
Data Model Impact¶
None
REST API Impact¶
floating_ip_address will be allowed to POST /v2.0/floatingips
It is not updatable. i.e. cannot use for PUT /v2.0/floatingips
The attribute map will be changed as the following.
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},
...
},
...
}
Security Impact¶
An administrator of OpenStack should consider whether this feature is exposed to tenant user.
If users have a permission to use this feature, Users can control public ip addresses.
Notifications Impact¶
None
Other End User Impact¶
None
Performance Impact¶
None
IPv6 Impact¶
None
Other Deployer Impact¶
None
Developer Impact¶
None
Community Impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
fujioka-yuuichi-d
Work Items¶
Add attribute to API
Create test case on tempest
Dependencies¶
None
Testing¶
Tempest Tests¶
The following tests will be added.
API Testing
Allowed users can use the new parameter
Scenario Testing
A created floating ip address is reachable
Functional Tests¶
The following tests will be added.
Allowed users can use the new parameter
API Tests¶
The following tests will be added.
All patterns that parameter is passed/not passed.
Documentation Impact¶
User Documentation¶
New attributes will be added to API documentation.
Developer Documentation¶
None