Commit Graph

417 Commits

Author SHA1 Message Date
Paddy e1a5805833 Fix instance/template metadata support
Update our instance template to include metadata_startup_script, to
match our instance resource. Also, we've resolved the diff errors around
metadata.startup-script, and people want to use that to create startup
scripts that don't force a restart when they're changed, so let's stop
disallowing it.

Also, we had a bunch of calls to `schema.ResourceData.Set` that ignored
the errors, so I added error handling for those calls. It's mostly
bundled with this code because I couldn't be sure whether it was the
root of bugs or not, so I took care of it while addressing the startup
script issue.
2016-12-05 02:45:28 -08:00
Dana Hoffman 0e03f59e4a remove loadBalancingScheme as an option in RegionBackendService since it can only be INTERNAL 2016-12-01 12:27:36 -08:00
Dana Hoffman fd2b1fcbd6 add one more test for updating a health check 2016-12-01 12:27:35 -08:00
Dana Hoffman 77f0ef4fc1 fix bugs in health check and its tests 2016-12-01 12:27:35 -08:00
Dana Hoffman 20ee56be07 Add the other HealthCheck types 2016-12-01 12:27:34 -08:00
Dana Hoffman adafa722e7 clean up RegionBackendService and tests 2016-12-01 12:27:34 -08:00
Dana Hoffman 39809fca76 use v1 apis instead of beta 2016-12-01 12:27:33 -08:00
Dana Hoffman a04ed894d1 First set of changes to enable internal load balancing using beta apis 2016-12-01 11:14:21 -08:00
Paddy 7054fdfa13 providers/google: make projects importable.
This change doesn't make much sense now, as projects are read-only
anyways, so there's not a lot that importing really does for you--you
can already reference pre-existing projects just by defining them in
your config.

But as we discussed #10425, this change made more and more sense. In a
world where projects can be created, we can no longer reference
pre-existing projects just by defining them in config. We get that
ability back by making projects importable.
2016-12-01 10:38:27 -08:00
Benjamin Pineau f2a3c5da82 provider/google: allow session affinity for compute_backend_service
Google's Backend Services gives users control over the session affinity modes.
Let's allow Terraform users to leverage this option.
We don't change the default value ("NONE", as provided by Google).
2016-11-30 23:50:50 +01:00
Evan Brown d357e75201 Merge pull request #10117 from cblecker/f-gke-node-scopes
provider/google: Add support for scope aliases to google_container_cluster
2016-11-18 20:19:26 -08:00
Evan Brown 3920460220 Merge pull request #10081 from aditya87/google_compute_image_timeout
Added create timeout for compute images and instances
2016-11-17 12:56:02 -08:00
Evan Brown a32fe2d47f Resolve review feedback 2016-11-17 09:49:22 -08:00
Christoph Blecker 190f167bb2
Add support for scope aliases to google_container_cluster 2016-11-14 15:50:24 -08:00
Evan Brown 4bdf65c36f Fix spacing inconsistencies 2016-11-14 11:12:55 -08:00
Evan Brown 1612d6a78f Fix go vet issue 2016-11-14 09:59:44 -08:00
Evan Brown 9a188049a7 providers/google: random resource names in SA test 2016-11-14 09:42:11 -08:00
Evan Brown 5423349b68 providers/google: Create and delete Service Accounts 2016-11-13 20:47:20 -08:00
Aditya Anchuri 49c7d272a3 Added create timeout for compute images and instances
- Prevents the corresponding terraform resource from timing out when the
  images or instances take longer than the default of 4 minutes to be
  created
2016-11-12 18:30:02 -08:00
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
Christoph Blecker af7cd57a4a Search configured project image families (#9243)
* Search configured project image families

* Clarify documentation around google_compute_instance image families

* Acceptance test for private instance family creation
2016-11-01 21:00:12 +00:00
Christoph Blecker 45f441fdb4 Add support for default-internet-gateway alias for google_compute_route (#9676) 2016-11-01 13:45:36 +00:00
Christoph Blecker ca8cd4b1f0 Add support for using source_disk to google_compute_image (#9614) 2016-11-01 10:32:47 +00:00
Dan Wendorf 781725348e provider/google Support MySQL 5.7 instances (#9673)
* provider/google Document MySQL versions for second generation instances

Google Cloud SQL has first-gen and second-gen instances with different
supported versions of MySQL.

* provider/google Increase SQL Admin operation timeout to 10 minutes

Creating SQL instances for MySQL 5.7 can take over 7 minutes,
so the timeout needs to be increased to allow the
google_sql_database_instance resource to successfully create.
2016-10-28 14:41:03 +02:00
Dan Wendorf 407af92c21 provider/google Change default MySQL instance version to 5.6 (#9674)
The Google Cloud SQL API defaults to 5.6, and 5.6 is the only version avaiable
to both first- and second-generation Cloud SQL instances.
2016-10-28 00:11:08 +01:00
Dana Hoffman ab01c23140 style fix 2016-10-27 11:25:28 -07:00
Dana Hoffman 8ae5f3a38c Add subnetwork_project field to allow for XPN in GCE instances 2016-10-27 08:25:58 -07:00
Paul Stack eaee3b9d78 Merge pull request #9442 from obsh/google-scope-aliases
provider/google: add scope aliases
2016-10-24 14:36:51 +01:00
oleksandr.bushkovskyi f9b6d2df8f provider/google: add scope aliases 2016-10-19 23:14:55 +03:00
James Bardin 4be35a5e4e Don't assert nil values in convertStringArr
Some of the inputs to this function may not have been validated
2016-10-19 10:06:13 -04:00
James Nugent f19990a0b3 Merge pull request #9370 from hashicorp/b-crash-8609
provider/google: Ensure we don't assert on nil
2016-10-14 15:13:53 -05:00
James Nugent 0459d86b93 provider/google: Ensure we don't assert on nil
This commit tests whether an interface is nil before type asserting it
to string - this should fix the panic reported in #8609.

We also clean up the schema definition to the newer style without
redundant type declarations.
2016-10-14 12:19:46 -05:00
clint shryock 2c7d4faf53 provider/google: remove debug spew statement 2016-09-27 17:06:41 -05:00
Matt Morrison c28c9ef459 Add support for GCS StorageClass
Fixes: #7417
2016-09-22 07:46:35 +12:00
Evan Brown 262661a05f providers/google: Add documentation for google_iam_policy resource 2016-09-07 13:35:33 -07:00
Evan Brown bb7b8c875e providers/google: Add acceptance tests for Project IAM 2016-09-07 13:35:33 -07:00
Evan Brown 8520cd7fe4 providers/google: Allow IAM policy removal from project 2016-09-07 13:35:33 -07:00
Evan Brown 4cdb064e16 WIP: providers/google: Support IAM permissions for GCP projects
This change adds a data source to allow declaring IAM policies, as well as a
new resource to represent an existing GCP project. The project resource may
reference an IAM policy, allowing a user to set project-wide permissions.
2016-09-07 13:35:33 -07:00
Evan Brown bfc30b4b89 providers/google: Fix VPN Tunnel acceptance test
This fix changes acceptance tests for VPN tunnel to use the correct ports (UDP
500 and 4500). It also changes the documentation to demonstrate using these
port single ports in a `port_range` field.
2016-09-05 12:34:40 -07: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 3a3b4e9244 Merge pull request #8498 from drich10/finite_health_checking
provider/google: Use healthcheck names instead of urls when reading target pool
2016-09-01 22:02:41 -07:00
Paul Stack 6062d592df provider/google: Change Compute VPN Tunnel test to use the correct port range (#8504) 2016-08-27 00:51:57 +01:00
Derek Richard b9fd3f7945 Use healthcheck names instead of urls when reading target pool
- Resolves #8488

Signed-off-by: Dan Wendorf <dwendorf@pivotal.io>
2016-08-26 10:45:59 -07:00
Christoph Blecker 7e0ab86b9e Fix acceptance test image reversion (#8349) 2016-08-25 14:39:03 +01:00
Sarah Zelechoski 35c7d37f40 email is variable, not string 2016-08-23 17:32:46 -04:00
Sarah Zelechoski 3c63c04c11 Allow custom Compute Engine service account 2016-08-23 17:04:13 -04:00
James Nugent 5c83ca7a77 provider/google: Remove redundant type declaration
This commit cleans up the google_compute_firewall resource to the Go
1.5+ style of not requiring map values to declare their type if they can
be inferred.
2016-08-23 10:40:33 +02:00
James Nugent 78a96f50bb provider/google: Hook in state migration function
As part of Terraform 0.7.1 it was observed in issue #8345 that the state
migration for google_compute_firewall did not appear to be running,
causing a panic when an uninitialized member was read. This commit hooks
up the state migration function (which _was_ independently unit tested
but was not actually in place).

There is currently no good test framework for this, I will address this
issue in a future RFC.
2016-08-23 10:40:33 +02:00
Noah Webb 679b063a30 provider/google: changed the format of source_image in autoscaler tests 2016-08-19 14:05:28 -04:00
Christoph Blecker a9cc6e2838
Update Google TestAcc to use Debian 8 images 2016-08-18 19:31:45 -07:00
Christoph Blecker e5ba2cb76f
Fix AccTest for Autoscaler 2016-08-18 19:21:48 -07:00
Lars Wander 0a0437ac7f Merge pull request #8298 from nwwebb/import-instance-group-manager
provider/google: Support Import of 'google_compute_instance_group_manager'
2016-08-18 15:36:03 -04:00
Noah Webb da1cf0d836 provider/google: Support Import of'google_compute_instance_group_manager' 2016-08-18 15:13:52 -04:00
Paul Hinze 787ab97691
provider/google: add test case for GH-4222
Reproduces a non-empty plan that is now fixed after the bugfix for that
issue landed.
2016-08-18 15:08:50 -04:00
Lars Wander 8d8b186cc3 Merge pull request #8292 from nwwebb/import-target-pool
provider/google: Changed instances to a computed property of 'google_compute_target_pool'
2016-08-18 14:16:09 -04:00
Noah Webb 0f1561ba71 provider/google: Made instances a computed property of 'google_compute_target_pool' 2016-08-18 13:29:00 -04:00
Lars Wander 5547e8cb37 provider/google: Correct update process for auth nets in sql instance 2016-08-18 12:01:38 -04:00
Lars Wander 23ab7ee6bb Merge pull request #8147 from nwwebb/import-instance-template
provider/google: Support Import of 'google_compute_instance_template'
2016-08-18 10:30:46 -04:00
Noah Webb 09df0efd1c provider/google: Support Import of 'google_compute_firewall' 2016-08-16 17:04:30 -04:00
Christoph Blecker 84162586b0 Add support for using GCP Image Family names. (#8083) 2016-08-15 22:29:58 +01:00
Noah Webb fe5d7d1c63 provider/google: Support Import of 'google_compute_instance_template' 2016-08-15 10:03:31 -04:00
Evan Brown 93b2c71544 providers/google: Add google_compute_image resource (#7960)
* providers/google: Add google_compute_image resource

This change introduces the google_compute_image resource, which allows
Terraform users to create a bootable VM image from a raw disk tarball
stored in Google Cloud Storage. The google_compute_image resource
may be referenced as a boot image for a google_compute_instance.

* providers/google: Support family property in google_compute_image

* provider/google: Idiomatic checking for presence of config val

* vendor: Update Google client libraries
2016-08-12 12:35:33 +10:00
Lars Wander ef9591952a Merge pull request #8115 from nwwebb/import-autoscaler
provider/google: Support Import of 'google_compute_autoscaler'
2016-08-11 18:07:22 -04:00
Lars Wander ad4ca17f05 Merge pull request #8121 from nwwebb/import-http-health-check
provider/google: Support Import of 'google_resource_http_health_check'
2016-08-11 18:05:42 -04:00
Lars Wander 4d631d525b Merge pull request #8122 from nwwebb/import-forwarding-rule
provider/google: Support Import of 'google_compute_forwarding_rule'
2016-08-11 18:04:06 -04:00
Noah Webb 1ff6f8ccf4 provider/google: Support Import of 'google_compute_target_pool' 2016-08-11 10:24:03 -04:00
Noah Webb b45650c390 provider/google: Support Import of 'google_compute_forwarding_rule' 2016-08-10 16:45:56 -04:00
Noah Webb 3fb6287027 provider/google: Support Import of 'google_resource_http_health_check' 2016-08-10 16:30:41 -04:00
Noah Webb f55532b018 provider/google: Support Import of 'google_compute_autoscaler' 2016-08-10 16:19:31 -04: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 8f0fdc9800 providers/google: Move URLMap hosts to TypeSet from TypeList (#7472)
Using TypeSet allows host entries to be ordered arbitrarily in a manifest.
2016-08-08 12:47:05 +12:00
bill fumerola 9ddb2fd6f8 provider/google: atomic Cloud DNS record changes (#6575)
Closes #6129
2016-08-08 12:36:27 +12:00
Evan Brown 4968f6a5ff providers/google: Fix read for the backend service resource (#7476) 2016-08-08 12:28:43 +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
Lars Wander 953e2ec565 Merge pull request #7029 from igorwwwwwwwwwwwwwwwwwwww/google-instance-wait-project
provider/google: Use resource-specific project when waiting for creation, instead of global
2016-08-04 16:54:30 -04:00
Greg Aker 3d1802d547 Add default value & acceptance test. 2016-07-28 16:57:33 -05:00
Greg Aker a8e8922ea8 Add enable_cdn to google_compute_backend_service.
Add the ability to add/remove the Cloud CDN configuration
option on a backend service.
2016-07-28 15:38:09 -05:00
James Bardin f66d1a10a4 Add VersionString
We conditionally format version with VersionPrerelease in a number of
places. Add a package-level function where we can unify the version
format. Replace most of version formatting in terraform, but leave th
few instances set from the top-level package to make sure we don't break
anything before release.
2016-07-21 16:43:49 -04: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
James Nugent ce729c1a82 provider/google: Provide valid config in acctest
The changes to allow for testing ID-only refresh conflict with passing
in "" as Config for tests. In this case we instead construct a config
with a known-non-existent bucket name.
2016-05-23 17:20:19 -05:00
Evan Brown f075b0214d providers/google: Don't fail deleting disks that don't exist.
Addresses #5942
2016-05-16 11:57:04 -07:00
James Nugent f331240601 Merge pull request #6574 from uber/b-gcp-acc-test-env
provider/google: correct error messages in acceptance tests
2016-05-13 17:29:56 -04:00
Evan Brown 55742acf12 providers/google: support optionial uuid naming for Instance Template (#6604)
Auto-generating an Instance Template name (or just its suffix) allows the
create_before_destroy lifecycle option to function correctly on the
Instance Template resource. This in turn allows Instance Group Managers
to be updated without being destroyed.
2016-05-11 22:54:47 +01:00
Bill Fumerola 7dcb4974a1 Correct error messages in google provider test library 2016-05-10 10:59:11 -07:00
James Nugent f2fef2556a Fix import formatting across code base 2016-04-18 17:28:46 -07:00
Evan Brown c6763fd3af Update docs and fix computed container settings 2016-04-14 16:33:52 -07:00
Evan Brown 5eaf2033bd provider/google: Support manual subnetworks and addons config 2016-04-14 16:31:24 -07:00
Seth Vargo 337895b51e Read more default envvars for GCP
- Closes #5874
- Fixes #5872
2016-04-11 12:19:07 -04: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
Seth Vargo fda23a3a31 Switch the order of gcp buildNetworks func to be more go-like
The current implementation returns error as the first parameter, 
but it is usually the last parameter.
2016-04-10 13:01:23 -04:00
Seth Vargo d5a9e9b554 Deprecate unused "region" attribute in gcp global_forwarding_rule 2016-04-10 13:01:23 -04:00
Seth Vargo 7e5ca60369 Make GCP provider "project" attribute optional 2016-04-10 13:01:23 -04:00
Clint 986fcd95f9 provider/google: Accept GOOGLE_CLOUD_KEYFILE_JSON env var for credentials 2016-04-04 16:56:35 -05:00
Bill Fumerola 1ccfacd2dd provider/google: use non-deprecated image in acceptance tests, documentation 2016-03-26 09:55:28 -07:00
James Nugent c71751c596 Merge pull request #5428 from shaneog/google_dns_managed_zone
description is now a required field for google_dns_managed_zone
2016-03-19 17:06:13 +00:00
Bill Fumerola 86bf978550 google_compute_instance_group: Correct error message for invalid instances 2016-03-18 09:25:28 -07:00
Lars Wander f8784df82b provider/google: Mark next_hop_network as read only. 2016-03-10 13:58:09 -05:00
Paul Hinze 5ece31dc88 Merge pull request #5501 from evandbrown/vpnval
provider/google: Validate VPN tunnel peer_ip
2016-03-09 18:55:10 -06:00
Paul Hinze c1f8dda863 Merge pull request #5497 from evandbrown/flakeygcs
provider/google: Address flaky GCS acceptance tests.
2016-03-09 18:48:44 -06:00