Commit Graph

83 Commits

Author SHA1 Message Date
Paddy 8ba6ed708a provider/google: throw an error for invalid disks
When configuring an instance's attached disk, if the attached disk has
both the disk and type attributes set, it would previously cause
terraform to crash with a nil pointer exception. The root cause was that
we only instantiate the InitializeParams property of the disk if its
disk attribute isn't set, and we try to write to the InitializeParams
property when the type attribute is set. So setting both caused the
InitializeParams property to not be initialized, then written to.

Now we throw an error explaining that the configuration can't have both
the disk and the type set.

Fixes #6495.
2016-11-07 16:11:00 -08:00
Matt Morrison 6ca21ec009 Make network attribute more consistent.
Some google resources required network be refernced by resource URL (aka self_link), while others required network name.
This change allows either to be supplied.

DRY it out, and add a fix for #5552.
2016-09-05 08:02:54 +12:00
Evan Brown 3ac3516371 provider/google: Support static private IP addresses (#6310)
* provider/google: Support static private IP addresses

The private address of an instance's network interface may now be specified.
If no value is provided, an address will be chosen by Google Compute Engine
and that value will be read into Terraform state.

* docs: GCE private static IP address information
2016-08-08 13:01:31 +12:00
Evan Brown 0e565e5973 providers/google: Allow custom Compute Engine service account
This commit allows an operator to specify the e-mail address of a service
account to use with a Google Compute Engine instance. If no service account
e-mail is provided, the default service account is used.

Closes #7985
2016-08-04 19:25:28 -07:00
Igor Wiedler ad9a3fe44d [provider/google] Use resource-specific project when waiting for creation
Creating most google cloud resources uses the compute_operation to
wait for the creation to complete. However, the computeOperationWait*
functions always uses the global `config.Project`, instead of the resource-
specific one.

This means that creating resource in a project other than the main one
fails with a 404 on the operation resource.

This patch uses the project from google_compute_instance instead of the
global one.
2016-06-10 11:55:21 +02:00
Seth Vargo 29b073158f Update documentation to include new "project" attribute
This commit also normalizes the format we display attributes.
2016-04-10 17:34:15 -04:00
Seth Vargo bacf5abf3c Accept "project" as an attribute to GCP resources
This is the first step in removing the config dependency on "project".
This change is backwards-compatible because the value for this new
attribute defaults to the value from the provider.
2016-04-10 13:01:24 -04:00
Matt Morrison f66f37f4d8 Add more acceptance tests, and fix some test cases 2016-02-18 08:37:58 -08:00
Matt Morrison 430ed48a44 Update google resources where necessary to make use of subnetworks, update som docs 2016-02-18 08:37:58 -08:00
Trevor Pounds 0cd0ff0f8e Use built-in schema.HashString. 2016-02-07 16:29:34 -08:00
Lars Wander 504bc87ec6 Merge pull request #4265 from lwander/gcp-assigned-nat-ip
provider/google: provide assigned_nat_ip as well as nat_ip
2016-01-13 17:13:16 -05:00
Lars Wander cef0589498 provider/google: Updated Read(..) behavior to handle deleted resources 2016-01-07 10:39:04 -05:00
Lars Wander a006a6a399 provider/google: Fix project metadata sshkeys from showing up 2016-01-05 11:37:52 -05:00
stack72 14b7559cd1 Fixing Gofmt errors 2015-12-17 00:43:50 +01:00
Lars Wander a1a5788ed8 provider/google: provide assigned_nat_ip as well as nat_ip 2015-12-11 12:57:18 -05:00
Matt Morrison ede5ebb368 Add logging when instance no longer exists 2015-11-06 10:15:35 +13:00
Matt Morrison 5f90a4bc7e Issue #3742 - terraform destroy fails if Google Compute Instance no longer exists 2015-11-05 12:38:17 +13:00
clint shryock ec2d22cf29 update with go fmt 2015-10-29 17:10:44 -05:00
Lars Wander 5a311dbd11 provider/google: Added scheduling block to compute_instance 2015-10-26 16:16:06 -04:00
Paul Hinze 4f400a1944 provider/google: one more fix to GCE metadata
In #3501 @lwander got us almost all the way there, but we still had
tests failing. This seemed to be because GCE sets
`metadata.startup-script` to a blank string on instance creation, and if
a user specifies any `metadata` in their config this is seen as the
desired full contents of metadata, so we get a diff trying to remove
`startup-script`.

Here, to address this, we just proactively remove the "startup-script"
key from `Read`, and then we enforce that "metadata_startup_script"
is the only way to configure startup scripts on instances.
2015-10-14 21:34:33 -05:00
Lars Wander b7f7c7a731 Provider GCE, fixed metadata state update bug 2015-10-14 12:47:54 -05:00
Radek Simko f9efede852 gofmt files from recently merged PRs 2015-10-07 13:35:06 -07:00
Lars Wander 158af9d0d4 Refactored wait code to delete duplicated code & share functionality 2015-09-24 16:30:12 -04:00
Lars Wander b240628799 Refactored project/instance metadata to use same code whenever possible
Also added optimistic locking to instance metadata
2015-09-15 14:06:26 -04:00
Clint Shryock 5d7e156982 provider/google: Misc. cleanups for tests to pass 2015-08-31 09:06:25 -05:00
Dave Cunningham 447da2177e Add ForceNew metadata_startup_script field 2015-07-01 21:24:34 -04:00
Mitchell Hashimoto cddd54c3de fmt 2015-06-23 22:31:24 -07:00
Dave Cunningham 5f15a9d26a Allow local SSDs, Fix #1088 2015-05-11 21:40:37 -04:00
Dave Cunningham 85cc4ec0c1 Use a set for service account scopes. Fix #1759 2015-04-30 21:21:21 -04:00
Mitchell Hashimoto 9037a3a4bc Merge pull request #1426 from dainis/master
provider/google: add additional options to google provider
2015-04-22 08:50:22 +02:00
Mitchell Hashimoto d02abb7a8c Merge pull request #1484 from sparkprime/deprecate-network
deprecate google instance 'network' attribute in favor of network_interface
2015-04-22 08:49:04 +02:00
Paul Hinze 01e75e0fc3 google: simplify instance metadata schema
It doesn't need to be a List of Maps, it can just be a Map.

We're also safe to remove a previous workaround I stuck in there.

The config parsing is equivalent between a list of maps and a plain map,
so we just need a state migration to make this backwards compatible.
2015-04-15 11:01:35 -05:00
Dave Cunningham c08d69a509 deprecate google instance 'network' attribute in favor of network_interface 2015-04-10 17:03:51 -04:00
Dave Cunningham d149db41d6 Avoid 'source' being undefined in legacy network Read 2015-04-09 13:29:59 -04:00
Dainis Tillers ab71de8650 Just removing network refresh wont cut it, value from config must be used 2015-04-08 15:38:07 +03:00
Dainis Tillers 8f717c3e60 Fix #1394, network value for network_interface isn't a computed value and there is no need to refresh it each time instance data is read 2015-04-08 15:29:46 +03:00
Dainis Tillers 22616764fc Added - disk device name 2015-04-08 14:34:37 +03:00
Mitchell Hashimoto 5e7007e38f Merge pull request #1239 from BashtonLtd/gce_fix_false_bools
providers/google: Updates to GCE Instances and Instance Templates to allow for false bools.
2015-03-26 10:20:52 -07:00
Mitchell Hashimoto 266670c1a1 Merge pull request #1154 from stuntgoat/gce-add-network
providers/google: add network field to the network_interface
2015-03-26 10:19:00 -07:00
Mitchell Hashimoto d21c112593 Merge pull request #1236 from BashtonLtd/gce_update_imports
Update Google API import to point to the new location.
2015-03-26 10:14:33 -07:00
Nolan Darilek 9d75fa72ab Add disk size to google_compute_instance disk blocks. 2015-03-24 11:45:20 -05:00
David Watson 988da2f90b Updates to GCE Instances and Instance Templates to allow for false values to be set for the auto_delete setting. 2015-03-18 17:50:03 +00:00
David Watson 33496eeaf8 Update Google API import to point to the new location. 2015-03-18 17:10:39 +00:00
stungtoat 1ae50a18f8 add network field to the network_interface 2015-03-06 22:13:07 -08:00
Mitchell Hashimoto 1c2d19dc00 providers/google: set only top-level configs for lists [GH-929] 2015-03-02 10:00:24 -08:00
Dave Cunningham 04cbbe6a01 Remove unnecessary ; 2015-02-23 13:35:07 -05:00
Dave Cunningham 3e0e7753c9 Fix argument order 2015-02-23 13:30:41 -05:00
Mitchell Hashimoto 523639b5cd fmt 2015-02-20 10:22:26 -08:00
Dave Cunningham b7f5f491e2 Make Google Instance disk attribute all ForceNew. Fix #608. 2015-02-13 14:23:49 -05:00
Dave Cunningham 26b90c10a0 Merge branch 'master' into gcp_image 2015-02-10 03:25:45 -05:00