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}" } } } 2It 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 } } }