How to assign floating ip address using terraform?

January 26, 2017 2k views
CentOS Networking

I’m unable to join floating ip and droplet creation.

# I create a resource:
resource "digitalocean_droplet" "mail" {
  image = "centos-7-x64"
  name = "mail"
  region = "${var.region}"
  size = "2gb"
  private_networking = true
#I create a floating ip:
resource "digitalocean_floating_ip" "mail" {
  droplet_id = "${}"
  region = "${var.region}"

The IDs are the same, but the IP’s are not.

$ doctl compute droplet list
ID      Name    Public IPv4 Public IPv6 Memory  VCPUs   Disk    Region  Image           Status  Tags
38296000    mail         2048    2   40  lon1    CentOS 7.3.1611 x64 active  
$ doctl compute fip list
IP      Region  Droplet ID  Droplet Name   lon1    38296000    mail

How do I get the droplet to take the floating IP address?


edited by asb
1 Answer

When you assign a floating IP address to a droplet you’re actually just adding an additional IPv4 interface. Meaning that your droplet is now accessible by two public IP addresses, the IP address assigned to the droplet originally and the new floating IP.

So in your case, you were actually successful in assigning the floating IP. Your droplet (ID# 38296000) is reachable at both, the IP assigned to the droplet when it was created, and, the floating IP.

These two tutorials provide helpful information regarding setting up and implementing floating IPs:

Hope this helps. Good Luck!

by Melissa Anderson
A DigitalOcean Floating IP is a publicly-accessible static IP address that can be mapped to one of your Droplets. A Floating IP can also be instantly remapped, via the DigitalOcean Control Panel or API, to one of your other Droplets in the same datacenter. This instant remapping capability grants you the ability to design and create High Availability (HA) server infrastructures by adding redundancy to the entry point, or gateway, to your servers.
Have another answer? Share your knowledge.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!