I'm using terraform with google vm provider. I want to assign existing Static IP to a VM.

Code:

resource "google_compute_instance" "test2" { name = "dns-proxy-nfs" machine_type = "n1-standard-1" zone = "${var.region}" disk { image = "centos-7-v20170719" } metadata { ssh-keys = "myuser:${file("~/.ssh/id_rsa.pub")}" } network_interface { network = "default" access_config { address = "130.251.4.123" } } } 

But its failing with the error:

google_compute_instance.test2: network_interface.0.access_config.0: invalid or unknown key: address

How can I fix this?

2 Answers

You could also allow terraform to create the static IP address for you and then assign it to the instance by object name.

resource "google_compute_address" "test-static-ip-address" { name = "my-test-static-ip-address" } resource "google_compute_instance" "test2" { name = "dns-proxy-nfs" machine_type = "n1-standard-1" zone = "${var.region}" disk { image = "centos-7-v20170719" } metadata { ssh-keys = "myuser:${file("~/.ssh/id_rsa.pub")}" } network_interface { network = "default" access_config { nat_ip = "${google_compute_address.test-static-ip-address.address}" } } } 
2

It worked by changing address to nat_ip in access_config.

resource "google_compute_instance" "test2" { name = "dns-proxy-nfs" machine_type = "n1-standard-1" zone = "${var.region}" disk { image = "centos-7-v20170719" } metadata { ssh-keys = "myuser:${file("~/.ssh/id_rsa.pub")}" } network_interface { network = "default" access_config { nat_ip = "130.251.4.123" // this adds regional static ip to VM } } } 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.