How to assign floating ip address using terraform?

Posted January 26, 2017 4k views

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

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
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!