Naming/API surface: DigitalOcean renamed Floating IPs to Reserved IPs; endpoints and fields change from `floating_ips` to `reserved_ips` (while legacy endpoints existed until a stated deprecation window), whereas OpenStack retains the “floatingip” resource in Neutron APIs ().
Identity model: DigitalOcean’s resource identifier in the API path is the IP address itself (`/v2/reserved_ips/{reserved_ip}` where `{reserved_ip}` is an IPv4 address), whereas OpenStack commonly uses UUID identifiers for Neutron resources like floating IPs and ports ().
Attachment model: creation requires either `droplet_id` or `region` and reassignment is conceptually “map to a Droplet”; OpenStack associates floating IPs to Neutron ports (and thus can be used with more complex networking constructs like routers), which is a different mental model for migrating users ().
Region binding: DigitalOcean Reserved IPs are explicitly bound to a region, while OpenStack floating IP pools are usually defined per external network and can be consumed wherever that external network is reachable (implementation-specific) ().
GCP static IPs are regional or global resources, with unassociated IPs metered per-hour; OpenStack floating IPs are pool-based. See the GCP pricing page for current rates.
GCP supports both ephemeral (auto-released on stop) and static IPs; OpenStack floating IPs are always explicit.
GCP global static IPs used with global load balancers only; no direct OpenStack equivalent.
Use these commands to manage floating IPs in your projects: discover external networks, create and delete floating IPs, and associate or disassociate them with instances. Replace the NETWORK_NAME, FLOATING_IP, and SERVER placeholders with the actual names or addresses of your resources.
To discover which networks you can allocate floating IPs from, list the external networks in your environment:
bash
openstack network list --external
On Quake AI this returns a single external network, PublicStatic. Use the returned network name as the NETWORK_NAME argument when you create a floating IP. PublicEphemeral provides public connectivity but is not a Neutron external network, so it does not appear here and cannot back a floating IP (see the note above).