Floating IPs from private address blocks are not presented as public address of a NodeMetadata after refreshing it. (They are only configured as public addresses when creating a new Node).
- The OpenStack can use private address block for floating IPs.
- When creating new Node, it adds the floating address to NodeMetadata publicAddresses set (IMO correctly) - in AllocateAndAddFloatingIpToNode class.
- when user refreshes the NodeMetadata by calling computeService.getNodeMetadata(id), the floating address is added to private addresses (in ServerInRegionToNodeMetadata class).
The address returned from Openstack can also have a type:
If the type present, then the ServerInRegionToNodeMetadata should use the type. Otherwise, fallback to the current behavior.