diff --git a/builtin/providers/google/resource_compute_instance.go b/builtin/providers/google/resource_compute_instance.go index 52b97c014..392a4de06 100644 --- a/builtin/providers/google/resource_compute_instance.go +++ b/builtin/providers/google/resource_compute_instance.go @@ -97,6 +97,13 @@ func resourceComputeInstance() *schema.Resource { }, }, + "can_ip_forward": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Default: false, + ForceNew: true, + }, + "metadata": &schema.Schema{ Type: schema.TypeList, Optional: true, @@ -230,6 +237,7 @@ func resourceComputeInstanceCreate(d *schema.ResourceData, meta interface{}) err // Create the instance information instance := compute.Instance{ + CanIpForward: d.Get("can_ip_forward").(bool), Description: d.Get("description").(string), Disks: disks, MachineType: machineType.SelfLink, @@ -305,6 +313,8 @@ func resourceComputeInstanceRead(d *schema.ResourceData, meta interface{}) error return fmt.Errorf("Error reading instance: %s", err) } + d.Set("can_ip_forward", instance.CanIpForward) + // Set the networks for i, iface := range instance.NetworkInterfaces { prefix := fmt.Sprintf("network.%d", i) diff --git a/builtin/providers/google/resource_compute_instance_test.go b/builtin/providers/google/resource_compute_instance_test.go index 8759cf94f..bedd64f6a 100644 --- a/builtin/providers/google/resource_compute_instance_test.go +++ b/builtin/providers/google/resource_compute_instance_test.go @@ -225,6 +225,7 @@ resource "google_compute_instance" "foobar" { name = "terraform-test" machine_type = "n1-standard-1" zone = "us-central1-a" + can_ip_forward = false tags = ["foo", "bar"] disk { diff --git a/website/source/docs/providers/google/r/compute_instance.html.markdown b/website/source/docs/providers/google/r/compute_instance.html.markdown index c9f0bd896..3511d51ec 100644 --- a/website/source/docs/providers/google/r/compute_instance.html.markdown +++ b/website/source/docs/providers/google/r/compute_instance.html.markdown @@ -47,6 +47,10 @@ The following arguments are supported: * `disk` - (Required) Disks to attach to the instance. This can be specified multiple times for multiple disks. Structure is documented below. +* `can_ip_forward` - (Optional) Whether to allow sending and receiving of + packets with non-matching source or destination IPs. + This defaults to false. + * `metadata` - (Optional) Metadata key/value pairs to make available from within the instance.