Commit Graph

305 Commits

Author SHA1 Message Date
Scott Stevenson
d574c6a910 Add resource_compute_region_autoscaler (#544)
* Add resource_compute_region_autoscaler
* Add import acceptance tests, reuse zonal autoscaler code
* Enforce single autoscaling policy requirement at terraform plan time
2017-10-09 10:59:38 -07:00
Joe Selman
e3ca8fbe59 Add labels to google_compute_instance_template (#515) 2017-10-09 10:17:15 -07:00
Dana Hoffman
d67bf7b3fc add master_version to container cluster (#538) 2017-10-06 15:48:01 -07:00
Vincent Roseberry
306b3d66b4 Forwarding rule network field supports name in addition of self_link (#487)
* Forwarding rule network field supports name in addition of self_link
* Update documentation
2017-10-06 09:33:42 -07:00
Vincent Roseberry
c94cbde1f6 Add import support to google_compute_target_tcp_proxy (#534) 2017-10-05 14:29:53 -07:00
Vincent Roseberry
87f3a58cb2 Add support for org policies at the organization level (#523)
* Fetch latest resource manager client
* Add new resource to manage Org Policy at the organization level.
* Update documentation
2017-10-05 13:20:16 -07:00
Alberto
2f94ff9ad4 Add support for target_tcp_proxy (#528) 2017-10-05 10:27:56 -07:00
Dana Hoffman
754e6daceb Fix BackendService group hash when instance groups use beta features (#522)
* change backend hash function

* update if statement
2017-10-04 16:49:02 -07:00
Dana Hoffman
5b3bd3455c Fix crash when creating node pools with name_prefix (#531) 2017-10-04 16:41:35 -07:00
Vincent Roseberry
0ba267dafc Use NetworkFieldValue in google_compute_subnetwork (#529) 2017-10-04 15:21:49 -07:00
Vincent Roseberry
10aeb9cd47 Improve VPN gateway and router to generate network link without calling network API (#527)
* Router network fields supports name in addition of self_link
* Improve VPN Gateway network field support
2017-10-04 14:01:38 -07:00
Dana Hoffman
bb0ab8e1f6 Merge the schemas and logic for the node pool resource and the node pool field in the cluster to aid in maintainability (#489) 2017-10-03 17:09:34 -07:00
Vincent Roseberry
e9436964bd Network peering gets network project from network self_link (#498) 2017-10-03 13:30:31 -07:00
Vincent Roseberry
7d65b3ed04 Firewall uses v1 API if the priority is unset or has the default value. (#500)
* api_versions supports default value
* Firewall use v1 API if the priority is set to default value (1000)
2017-10-03 13:24:02 -07:00
Vincent Roseberry
5f887b6568 Add update support for pubsub subscription push config field (#512) 2017-10-03 13:14:51 -07:00
Dana Hoffman
2db85e8e75 Add new retry wrapper fn, retry sql database instance operations that commonly 503 (#417)
* Retry sql database instance operations that commonly 503

* use new retry wrapper fn in resource_storage_bucket.go
2017-10-03 12:41:04 -07:00
Joe Selman
475ddb1b5b Add kubernetes dashboard addon (#464)
* Update google.golang.org/api/container/v1

* Add support for kubernetes_dashboard addon

* Fix tab/spaces issue in string
2017-10-03 09:29:27 -07:00
Joe Selman
ef543b20c5 Add google_logging_folder_sink resource (#470)
* Fix bad page title

* Add resource logging_folder_sink

* Use proper parse function and string format

* Remove unused strings
2017-10-03 09:26:19 -07:00
Paddy
33b526aa10 Skip migrations if we're not running acc tests. 2017-10-02 12:49:49 -07:00
Paddy
300bae3244 Fix compute_instance migration bug.
`compute_instance`'s StateVersion was set to 2. Then we released a
migration to v3, but never updated the StateVersion to 3, meaning the
migration was never run. When we added the migration for disks, we
bumped to 4, bypassing 3 altogher. In theory, this is fine, and is
expected; after all, some people may have state in version 0 and need to
upgrade all the way to 4, so our schema migration function is supposed
to support this.

Unfortunately, for migrations to v2, v3, and v4 of our schema, the
migration _returned_ after each migration, instead of falling through.
This meant that (in this case), version 2 would see it needs to be
version 4, run the state migration to version 3, then _return_, setting
its StateVersion to _4_, which means the migration from 3->4 got skipped
entirely.

This PR bumps the version to 5, and adds a migration from 4->5 such that
if there are still disks in state after 4, re-run 4. This will fix
things for people that upgraded to 1.0.0 and had their StateVersion
updated without the migration running.

I also updated the tests @danawillow wrote to start from state version 2
instead of state version 3, as the state would never be in version 3.

I also duplicated those tests, but started them from state version 4
(assuming the migration hadn't run) and verifying that the migration
from 4->5 would correct that.
2017-10-02 12:34:09 -07:00
Dana Hoffman
bbad89afe6 Fix failing tests: instance templates still use disk (#504)
* instance templates still use the disk field

* more fixes
2017-09-30 19:42:15 -07:00
Paddy
fccae61d61 1.0.0 Deprecations, pt 2
Fix the CI tests we broke with the deprecations for 1.0.0, and update
the docs we missed. Also, update the examples.
2017-09-29 16:04:52 -07:00
Paddy
3db816d686 Merge pull request #491 from terraform-providers/paddy_1.0_deprecations
Remove deprecated resources for 1.0.0.
2017-09-29 11:32:14 -07:00
Paddy
136a176e7e Deprecate disable_project on google_project_iam_policy. 2017-09-29 11:13:44 -07:00
Paddy
fe83578d33 Merge pull request #494 from terraform-providers/paddy_revert_shared_vpc
Revert Shared VPC.
2017-09-29 09:53:16 -07:00
Paddy
02512af271 Revert Shared VPC.
We want to talk about the design of Shared VPC a little bit more before
it ships, so this PR removes it, to be added back at a later date.
2017-09-29 04:59:41 -07:00
Paddy
50ad10a513 Address comments. 2017-09-29 04:57:47 -07:00
Paddy
b1fa2a4702 AccTest fixes. 2017-09-29 04:54:24 -07:00
Dana Hoffman
f31e34cad9 Mark certificate as sensitive within google_compute_ssl_certificate (#490) 2017-09-28 17:45:36 -07:00
Paddy
e4d920b774 Remove disks field. 2017-09-28 17:22:29 -07:00
Paddy
5aca4468ac Update tests that use deprecated resources. 2017-09-28 17:08:55 -07:00
Paddy
edad00bf4b Replace variable we actually needed. 2017-09-28 15:44:21 -07:00
Paddy
19b2a3550a Undelete initial_node_count.
This was just deprecated recently, don't remove it.
2017-09-28 15:40:24 -07:00
Paddy
a76fa3bd6a Merge branch 'master' into paddy_1.0_deprecations 2017-09-28 15:37:19 -07:00
Paddy
a586429bd7 Deprecate our authoritative stuff. 2017-09-28 15:36:40 -07:00
Paddy
f2f276ea0b Remove deprecated resources for 1.0.0.
In advance of 1.0.0, let's take the opportunity to remove the fields on
resources that have been deprecated for a while.
2017-09-28 14:38:38 -07:00
Dana Hoffman
6d947cd20e Add state migration from disk to boot_disk/scratch_disk/attached_disk (#329)
* Add state migration from disk to boot_disk/scratch_disk/attached_disk

* get rid of test for now

* update schema version

* add tests for migration

* fix travis errors

* actually fix travis errors

* fix logic when project is set, also remove some log statements

* add tests for reading based on encryption key and image

* use as much of the image URL as we can for matching on image

* read project from config if it wasn't set in the attribute

* update resolveImage call
2017-09-28 14:37:03 -07:00
Vincent Roseberry
bc25c02cbf Firewall network field now supports self_link in addition of name (#477) 2017-09-28 12:02:39 -07:00
Vincent Roseberry
39a858894a Remove alias ip range from beta feature for compute subnetwork 2017-09-28 10:48:28 -07:00
Vincent Roseberry
b5e1bf4a82 Remove alias ip range from beta feature for compute instance 2017-09-28 10:48:28 -07:00
Vincent Roseberry
764fb6b86c Rewrite api versions tests as table driven tests (#476) 2017-09-27 15:25:10 -07:00
Dana Hoffman
cc8ea81117 Fix a few instances where we read the project from the provider config and not using the helper function (#469) 2017-09-26 17:01:52 -07:00
Vincent Roseberry
ace5dffcc8 Remove project if it has been deleted from outside of Terraform (#466) 2017-09-26 16:55:32 -07:00
Dana Hoffman
617ad7362b allow min node counts of 0 for node pool autoscaling (#468) 2017-09-26 15:57:51 -07:00
Vincent Roseberry
5874819e21 Remove beta code path in compute_global_address 2017-09-26 15:57:22 -07:00
Vincent Roseberry
d35b92086a global_address ipv6 uses v1 api
global_forwarding_rule ipv6 uses v1 api
Update documentation
2017-09-26 15:57:22 -07:00
Vincent Roseberry
27a99c7dab Don't crash if node config is nil in google_container_cluster (#467) 2017-09-26 15:32:12 -07:00
Joe Selman
8231d6a83a Add resource_logging_billing_account_sink resource (#457)
* Add resource_logging_billing_account_sink resource

* Fix bad style
2017-09-26 15:26:54 -07:00
Vincent Roseberry
5e44df5199 Pubsub subscription read state from API and import support (#456) 2017-09-26 13:44:13 -07:00
Vincent Roseberry
20929eb468 Assign IAM policy to folder. (#447)
* Assign IAM policy to folder.
* Add documentation for google_folder_iam_policy
2017-09-25 11:30:45 -07:00
Paddy
c31bfdc4df Merge pull request #439 from terraform-providers/paddy_undeletable_bucket_acls
Deal with undeletable bucket ACLs in storage.
2017-09-25 10:29:15 -07:00
Paddy
5060f07926 Pull ProjectNumber off bucket, not getProject.
Use the project reported by the bucket, not the one Terraform is
configured to use.
2017-09-25 06:02:36 -07:00
Manoj Srivastava
c1d0e716d9 Folder support: Assign/Reassign a google project to a folder. (#438)
+ Make the org_id optional when creating a project. Closes #131
+ Mark org_id as computed to allow for GCP automatically assigning the org.
+ Add an acceptance test for project creation without an organization.
+ Skip TestAccGoogleProject_createWithoutOrg if GOOGLE_ORG is set.
+ Add a folder_id to the google_project resource, optionally
  specifying the ID of the GCP folder in which the GCP project should
  live.
+ Document how one can provision a project into a folder, and added a
  sample configuration to create a project into an existing folder.
* Skip test without org if service account is used
* Support folders/* or id only for the folder id field
2017-09-22 13:03:08 -05:00
Paddy
a6df85d809 Merge pull request #440 from terraform-providers/paddy_fix_object_acl_predefined
Fix failing test on storage_object_acl.
2017-09-16 16:23:17 -07:00
Paddy
6b1b727449 Fix failing test on storage_object_acl.
The `predefined_acl` test for `storage_object_acl` was failing. This is
because we removed the state-setting portion of the `predefined_acl`
field from `storage_bucket_acl`, and due to what I can only assume is a
copy/paste error, `storage_object_acl` was calling the Read function of
`storage_bucket_acl` instead of its own when using `predefined_acl`.

Updating to use `storage_object_acl`'s Read function makes the tests
pass.
2017-09-15 13:08:37 -07:00
Paddy
b343829d22 Stop fighting with the test framework.
Project number is now set through an environment variable instead of
being inferred at runtime using the API.
2017-09-15 12:53:44 -07:00
Paddy
755edf6d79 Fix make test.
Because we were instantiating a client outside of resource.TestCase, it
was being instantiated even for unit tests, which have no credentials,
causing the unit tests to fail. Sadly, this is the only way I could
figure out how to get a client inside resource.TestCase, which is very
sad making, but works.
2017-09-15 12:28:29 -07:00
Paddy
72114636da Deal with undeleatable bucket ACLs in storage.
When GCS buckets are created, they're created with a set of default
ACLs:

* `OWNER:project-owners-{project_number}`
* `OWNER:project-editors-{project_number}`
* `READER:project-viewers-{project_number}`

Normally, this would be fine, or a minor inconvenience. Terraform could
either delete them itself, or the first apply of a user would overwrite
them.

However, trying to remove the `OWNER:project-owners-{project_number}`
ACL yields an API error that the bucket owner must maintain OWNER access
to the bucket. This breaks things like `terraform destroy`, but also
means any config without that line in it will fail to apply, not just
overwrite the value.

To make matters worse, trying to *add* the
`OWNER:project-owners-{project_number}` ACL to any bucket that already
has it _also_ yields the same error about not being able to remove it.

To get around this, the storage_bucket_acl resource has been updated to
largely ignore _just this_ ACL. It will not try to add it if it already
exists, will not try to remove it at all. This does mean that Terraform
is incapable of removing this ACL from a bucket, but I'm not sure it's
possible to do that with the API, anyways.

Tests were also updated to keep the default ACLs as part of the config,
and to change the email addresses to addresses we actually own. I tried
changing to non-existant hashicorp.com email addresses, but was
rejected; only email addresses that are backed by actual Google accounts
can be used, sadly.
2017-09-15 12:03:03 -07:00
Christopher Stelma
43e749c213 Add versioning for google storage buckets (#381) 2017-09-15 08:36:01 -07:00
Joe Selman
3d5eccc1c6 Add stackdriver project sink support (#432)
* Vendor cloud logging api

* Add logging sink support

* Remove typo

* Set Filter simpler

* Rename typ, typName to resourceType, resourceId

* Handle notFoundError

* Use # instead of // for hcl comments

* Cleanup test code

* Change testAccCheckLoggingProjectSink to take a provided api object

* Fix whitespace change after merge conflict
2017-09-14 19:15:14 -07:00
Vincent Roseberry
167abea500 Create, update, move and delete a GCP folders. (#416)
* Initialize resourcemanager v2beta1 client
* Create new google_folder resource supporting create, move, update and delete operations.
* Add documentation for folders
2017-09-14 11:19:58 -07:00
Vincent Roseberry
3859f643f1 Renaming cluster import test to match other acceptance tests naming scheme (#434) 2017-09-14 11:02:00 -07:00
Raúl Naveiras
eee011fc99 Add support for setting labels to google_project (#383) 2017-09-14 10:39:21 -07:00
Dana Hoffman
5f86f52d1f Add DiffSuppressFunc to GKE cluster networks (#419)
* fix gke network test
* use a state func to store the resource name
2017-09-14 09:36:29 -07:00
Joe Selman
68303edb42 Fix error message not getting expanded properly. (#430) 2017-09-14 09:30:06 -07:00
Vincent Roseberry
3027822917 Instance group manager cleanup (#409) 2017-09-13 17:06:07 -07:00
Vincent Roseberry
137485ae4f computeBetaOperationWaitTime doesn't use the timeoutMin properly (#425) 2017-09-13 16:29:50 -07:00
Vincent Roseberry
870f456ef9 Save name-only instead of link path in pubsub_topic (#424) 2017-09-13 16:29:26 -07:00
Joe Selman
41248230ef Expose instance_id as a computed field on compute_instance (#427) 2017-09-13 16:18:08 -07:00
Vincent Roseberry
f83618624c Save region name-only instead of the self-link in compute_address (#422) 2017-09-13 09:51:32 -07:00
Dana Hoffman
2d733a1600 Add new google_compute_shared_vpc resource (#396)
* Revendor compute apis

* Add new resource for shared VPC host

* add test for disabled

* add docs for shared vpc host resource

* make project required

* Add new resource google_compute_shared_vpc

* Remove google_compute_shared_vpc_host

* Add docs for shared vpc resource

* Remove docs for shared vpc host resource

* fix typos in shared vpc docs

* move helper fn to utils.go
2017-09-13 10:36:07 +08:00
Joe Selman
204201a5be Refactor tests to defer to common method when looking up project (#410) 2017-09-12 13:28:31 -07:00
Joe Selman
7206284739 Add support for labels to compute_global_forwarding_rule (#395)
* Add support for labels to compute_global_forwarding_rule

* Factor out label api methods and use case statement for api version
2017-09-12 08:06:40 -07:00
Joe Selman
7dea4e86c1 Export connection_name on sql instance resource (#406) 2017-09-12 08:04:13 -07:00
Paddy
26ec7e04f7 Merge pull request #358 from terraform-providers/paddy_storage_bucket_acl
storage: make bucket ACLs control the entire resource.
2017-09-11 13:51:12 -07:00
Vincent Roseberry
a42d59b2c5 Use common utils method in iam policy data source (#405) 2017-09-11 12:43:44 -07:00
Anders Bruun Olsen
bf51f26c07 Pubsub importable (#392) 2017-09-11 09:46:27 -07:00
Vincent Roseberry
c751a32626 Add new resource region_instance_group_manager (#394) 2017-09-08 17:02:32 -07:00
Vincent Roseberry
7ceea51dfd Add support for alias_ip_range in google_compute_instance network interface (#375) 2017-09-07 13:43:00 -07:00
Joe Selman
5cd3e1ec99 Write entire backend service resource when updating (#364)
Also update the default value for connection_draining_timeout_sec to
match the default used by GCP
2017-09-07 12:56:53 -07:00
Joe Selman
84fa7ccd27 Don't attempt to delete default users on replica (#360)
* Don't attempt to delete default users on replica

* Test that we don't attempt to delete root user on replica
2017-09-07 12:44:17 -07:00
Vincent Roseberry
5be9d28369 Import for compute_address supports multiple id formats. (#378)
This allows to import address from region and project different than the default project.
2017-09-07 10:38:26 -07:00
Anders Bruun Olsen
67b7b2dd72 Container cluster importable (#391) 2017-09-07 10:31:58 -07:00
Dana Hoffman
333c2f09db Fix bug with CSEK where the key stored in state might be associated with the wrong disk (#327)
* Fix bug with CSEK where the key stored in state might be associated with the wrong disk

* preserve original order of attached disks

* use the disk index to figure out the raw key
2017-09-07 22:04:26 +08:00
Kit Ewbank
0858e7cd2d Add google_client_config data source (#385) 2017-09-06 14:52:32 -07:00
Vincent Roseberry
b082eb0b65 Remove duplicate []interface{} to []string method (#388) 2017-09-05 14:37:02 -07:00
Joe Selman
0605638885 Add preemptible as an option to node config (#341)
* Add preemptible as an option to node config

* Check for preemptible in test matching functions

* Move flattenClusterNodeConfig to node_config

* Handle bools properly when comparing in cluster and node pool tests

* Use a supported image_type in cluster tests
2017-09-01 13:02:26 -07:00
Vincent Roseberry
c2399f76fb Add support for min_cpu_platform in google_compute_instance. (#349) 2017-08-30 17:25:31 -04:00
Joe Selman
6377443d4a Add ability to set priority on compute_firewall (#345)
* Add ability to set priority on compute_firewall

* Set the priority explicitly when upgrading v1->v0beta
2017-08-30 12:19:50 -07:00
James McGill
d23e9c668f Support Bigquery Views (#230)
* Support views in Terraform.BigQuery

* Add tests for Table with view, and fix existing Table test

* Remove dead code

* run gofmt

* Address comments

* Address review comments and add support for use_legacy_sql

* Force transmission/storage of UseLegacySQL

* Trying to fix tests

* add tests for useLegacySQL
2017-08-26 17:15:44 +09:00
Joe Selman
b29337dbfb Fix bug where flattened ip_address had extra empty element (#357)
The combination of append and preallocation of the ips caused extra
empty elements at the beginning of the list.
2017-08-25 09:13:37 -07:00
Paddy
5b6df5ee93 storage: make bucket ACLs control the entire resource.
Storage bucket ACLs inherited the behaviour of only updating the fields
that were set in the config file. Terraform should track all the fields
in the resource, whether the user has specified a value for them or not,
and correct any drift that may occur.

This has manifested in an issue and unexpected behaviour in #50, and
this PR restores the expected behaviour.
2017-08-24 16:18:34 -07:00
Vincent Roseberry
7a216c40b5 Add support for guest_accelerators (GPU) to google_compute_instance (#330) 2017-08-22 15:49:43 -04:00
Joe Selman
772a5f28f9 Add labels to google_compute_disk (#344)
* Remove redundant '(Computed)' text

* Add support for setting labels on compute_disk

* Fix minor spacing issue in test
2017-08-18 16:10:47 -07:00
Dana Hoffman
07cf281372 allow updating google_container_cluster.logging_service (#343) 2017-08-18 15:29:51 -07:00
Joe Selman
227ea5660f Add support for setting labels to compute_image (#339) 2017-08-18 13:34:11 -07:00
Dana Hoffman
4cbc859de3 Add support for resizing a node pool defined in google_container_cluster (#331)
* Add support for resizing a node pool defined in google_container_cluster

* add initial node count back but make it deprecated
2017-08-17 17:51:58 -07:00
Joe Selman
329a25848b Move non-provider related functions into a utils.go file (#325) 2017-08-15 16:35:46 -07:00
Paddy
f792923505 Merge pull request #238 from z1nkum/snapshot-fix-url-to-name
Fix google_compute_disk created from snapshot, forces new resource then apply once more
2017-08-15 14:45:14 -07:00
Joe Selman
bcaa151cfa Add support for Google RuntimeConfig (#315)
* Vendor runtimeconfig

* Add support for RuntimeConfig config and variable resources

This allows users to create/manage Google RuntimeConfig resources and
variables. More information here:
https://cloud.google.com/deployment-manager/runtime-configurator/

Closes #236

* Remove typo

* Use top-level declaration rather than init()

* Cleanup testing-related code by using ConflictsWith

Also adds better comments around how update works
2017-08-14 14:16:11 -07:00