Commit Graph

233 Commits

Author SHA1 Message Date
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
Nicki Watt
752b406783 Add Google Spanner Support (google_spanner_database) (#271) 2017-08-14 09:53:11 -07:00
Vincent Roseberry
31afabb864 Rename spanner instance import tests to match format of resource tests (#324) 2017-08-14 09:47:02 -07:00
Nicki Watt
04b3ffb8ea Add Google Spanner Support (google_spanner_instance) (#270) 2017-08-14 09:30:41 -07:00
Dmitry Vlasov
d0b7fbc12f update snapshot test (add case with name reference) 2017-08-12 21:47:18 +03:00
Vincent Roseberry
9c159c6a96 Change required fields to computed in compute instance group datasource (#323) 2017-08-11 15:49:45 -07:00
Riley Karson
5645f72996 Add support for instance_type to google_bigtable_instance. (#313)
* govendor fetch cloud.google.com/go/bigtable

* Vendor the rest of the stuff.

* Add support for instance_type to google_bigtable_instance.

* Revendored some packages.

* Removed bad packages from vendor.json
2017-08-11 14:43:00 -07:00
Roberto Jung Drebes
5602218586 allow configuring node_config of node_pools specified in container_cluster (#299) 2017-08-11 12:23:17 -07:00
Joe Selman
e0e9b3a4d7 Remove default value for removed value automatic_restart (#321)
Import tests for compute_instance_template fail without this change as
they expect a value of true for automatic_restart. As this value was
removed, we're no longer setting it (and therefore it looks like it has
a value of false, which is different from the default).
2017-08-11 10:46:30 -07:00
Aleksandr Didenko
99b43ac400 Add compute instance group data source (#267) 2017-08-11 10:17:36 -07:00
Riley Karson
5c71655bac Changed zone name to be read correctly in google_compute_disk. (#320) 2017-08-10 13:41:27 -07:00
Riley Karson
ff8bdc9b52 Remove Beta operation waiting code and just wait at v1 instead. (#319) 2017-08-10 13:01:56 -07:00
Riley Karson
9e76fab11b Convert old validation functions to use IntAtLeast from helper/validation. (#312)
* Convert old validation functions to use IntAtLeast in helper/validation.

* make fmt

* Remove unused import.
2017-08-10 13:01:45 -07:00
Riley Karson
39423dd063 Stop shadowing err in version switches by using = over := (#318) 2017-08-10 10:29:18 -07:00
Vincent Roseberry
52daf4097a Add subnetwork secondary ip ranges beta feature (#310) 2017-08-09 15:02:54 -07:00
Joe Selman
f9d0570168 Fix scheduling automatic restart, remove deprecated options (#248)
* Fix bug where scheduling.automatic_restart false is never used

* Remove deprecated automatic_restart value in favor of scheduling.automatic_restart

* Remove deprecated on_host_maintenance

* Correct bad var name

* Re-add removed schema values and marked as Removed

* Fix var to snake case

* Migrate empty scheduling blocks in compute_instance_template

* Shorten error message

* Use only one return value instead of two
2017-08-09 12:25:16 -07:00
Stefan Schmidt
caeb43e39a Mark google_sql_database.{charset,collation} as computed instead of having defaults (#229)
* Mark google_sql_database.{charset,collation} as computed instead of having defaults.

This change is required to avoid the following scenario:
When upgrading from a previous version of the Google provider, TF will change
the charset/collation of existing (TF-managed) databases to utf8/utf8_general_ci
(if the user hasn't added different config values before running TF apply),
potentially overriding any non-default settings that the user my have applied
through the Cloud SQL admin API. This violates POLA.

* Remove charset/collation defaults from the documentation, too.

* Add links to MySQL's and PostgreSQL's documentation about supported charset and collation values.

* Use version 5.7's docs instead of 5.6, since that's the most up to date version of MySQL that we support.

* Add a note that only UTF8 / en_US.UTF8 are currently supported for Cloud SQL PostgreSQL databases.
2017-08-08 14:32:16 -07:00
Riley Karson
89ce4d92e4 Add Beta support for egress/direction to google_compute_firewall. (#306)
* Add Beta support for direction to google_compute_firewall.

* Added docs.
2017-08-08 13:28:49 -07:00
Joe Selman
73ef33191d Allow specifying resource name for project metadata item config in tests (#305) 2017-08-08 13:05:13 -07:00
Dana Hoffman
e9e9f835ec Allow upgrading GKE versions and provide better error message handling (#291)
* Better error handling for GKE operations

* Handle GKE version upgrades

* clarify log message
2017-08-08 11:31:12 -07:00
Riley Karson
2d0d8bdcc0 Add Beta support & Beta feature deny to google_compute_firewall (#282)
* Add versioned Beta support to google_compute_firewall.

* Add Beta support for deny to google_compute_firewall.

* remove extra line:

* make fmt

* Add missing ForceNew fields.

* Respond to review comments testing functionality + reducing network GET to v1
2017-08-07 13:14:35 -07:00
Vincent Roseberry
c9e2ce7f08 Change google_container_node_pool ID format to zone/cluster/name to remove artificial restriction on node pool name across clusters (#304) 2017-08-07 12:52:02 -07:00
Anders Bruun Olsen
f06970c97a Make google_container_node_pool resources importable. (#284) 2017-08-07 10:35:39 -07:00
Dmitry Vlasov
2f5ad2492b change request, use DiffSuppressFunc for image and snapshot properties (+fmt) 2017-08-05 22:45:20 +03:00
Dmitry Vlasov
9950c6d1d0 change request, use DiffSuppressFunc for image and snapshot properties 2017-08-05 22:39:30 +03:00
Vincent Roseberry
018e01887b Fail if both name and name_prefix are set for node_pool in google_container_cluster (#296) 2017-08-04 15:34:02 -07:00
Vincent Roseberry
1480539c82 Remove ConflictsWith for network and subnetwork. More than one interface is supported and ConflictsWith doesn't support List properly (#294) 2017-08-04 14:22:04 -07:00
Riley Karson
a4e1083fd1 Add a test that multiple nics work in google_compute_instance. (#289)
* Add a test that multiple nics works in google_compute_instance.

* Add note that multiple nics is in Beta.
2017-08-04 14:18:07 -07:00
Vincent Roseberry
3fde8cf24e google_compute_instance can specified the subnetwork using a self_link (#290) 2017-08-04 11:00:45 -07:00
Riley Karson
68f2e3528c Add Beta support & Beta feature ip_version to google_compute_global_address (#250)
* Make google_compute_global_address a versioned resource with Beta support.

* Added Beta support for ip_version in google_compute_global_address.

* Move checks to TestCheckFuncs, add a regression test for IPV4 on v1 resources.

* Consolidated TestCheckFuncs to a single function.

* Add missing return statement.

* Fix IPV4 test

* Clarified comment.
2017-08-04 10:53:43 -07:00
Matt Morrison
0be42521c1 Fix error if container_node_pool deleted out of band (#293)
Prior to this change it was possible for Terraform to error during plan / apply with the following:
Error 404: The resource "node pool \"foo\" not found"
2017-08-04 10:24:53 -07:00
Riley Karson
0d02b116c7 Add Beta support & Beta feature ip_version to google_compute_global_forwarding_rule (#265)
* Add versioned Beta support to google_compute_global_forwarding_rule.

* Add Beta support for ip_version in google_compute_global_forwarding_rule.

* Temporary commit with compute_shared_operation.go changes.

* Added a test to see if v1 GFR is still IPV4, moved to a TestCheckFunc

* This API returns the original self links, but let's make sure we don't diff.
2017-08-04 10:15:51 -07:00
alex1x
8570849022 Add Support for Google source repos (#256) 2017-08-03 15:00:34 -07:00
Vincent Roseberry
ec21efb665 google_compute_instance reads scheduling fields from GCP. (#237) 2017-08-03 13:51:45 -07:00
Riley Karson
9f429e7ed2 Read from the zone set in state when possible in google_compute_autoscaler (#193) 2017-08-03 12:52:48 -07:00
Dana Hoffman
0afcb4d52c compute-component api has been replaced by compute, update tests (#276) 2017-08-03 10:58:58 -07:00
Riley Karson
3877b340e6 Add Beta support for auto_healing_policies to instance group manager. (#249)
* Add support for auto_healing_policies to google_compute_instance_group_manager.

* Add a test for self link stability when a v1 resource uses a versioned resource.

* Add a comment about what the stable self link test does.

* make fmt

* Fixed formatting on new tests.

* Address review comments.

* Fix make vet
2017-08-02 10:12:16 -07:00
Matt Morrison
0595ef25a5 Fix disk type’Malformed URL’ error (#275)
* Fix disk type’Malformed URL’ error

The API expects the disk type to be a SelfLink URL, but the disk type 
name was being used (e.g. “pd-ssd”).

* Add ACC Tests for boot disk type

* Fix acceptance test & fmt test config

The Instance data does not contain the actual disk type, just "PERSISTENT". This commit uses the computeClient to pull the disk data from the API, allowing checking of the disk type.

Also fmt'd the test configuration.
2017-08-01 15:39:32 -07:00
Dana Hoffman
947c18ec7a Persist state from the API for google_sql_database_instance regardless of what attributes the user has set (#208) 2017-08-01 13:13:09 -07:00
Joe Selman
c6ae260d63 Use a unique key when running project_metadata_item import tests (#274)
CI runs tests concurrently and will interfere with each other with the
current global key name.
2017-08-01 11:14:13 -07:00
Joe Selman
28f8931f0b Fix bug where startup-script metadata did not refresh (#180)
* Fix bug where startup-script metadata did not refresh

* Remove MetadataFormatSchema and replace with explicit filters/transforms
2017-08-01 10:47:58 -07:00
Dana Hoffman
32d7c3f62c Add support for legacyAbac to google_container_cluster (#261)
* revendor container api

* Add support for legacyAbac to `google_container_cluster`

* change to single enabled field
2017-07-31 11:09:05 -07:00
Aleksandr Didenko
1ec19cf3d9 Add support node config for GKE node pool (#184)
* Add support node config for GKE node pool

* Review fixes:
- Set max items in node config schema
- Fill missing node config fields
- Put test helpers above than test vars

* Update checks in node pool tests

* Fix node pool check match
2017-07-31 09:28:39 -07:00
Vincent Roseberry
53e481434e Add new data source: google_dns_managed_zone (#268) 2017-07-31 09:27:18 -07:00
Joe Selman
060861e678 Add an additional test with multiple project metadata items (#222)
This additional test would have caught the error fixed in
8f75c1c9a5
2017-07-28 15:50:12 -07:00
Joe Selman
88b1f092ff Fix issue with nondeterminism in tests (#226) 2017-07-28 12:59:19 -07:00
Paddy
37df58296b Merge pull request #171 from terraform-providers/paddy_iam
Add google_project_iam_binding and google_project_iam_member resources.
2017-07-28 12:22:33 -07:00
Joe Selman
50c10d4e7d Revert "Revert metadata item changes (#225)" (#257)
* Revert "Revert metadata item changes (#225)"

This reverts commit 884158d891.

* Use computeOperationWait instead of computeOperationWaitGlobal
2017-07-28 10:49:02 -07:00
Vincent Roseberry
3eaf4751db Add new resource google_compute_network_peering (#259) 2017-07-28 09:51:29 -07:00
Paddy
6f98217d66 Fix embarrassing typo in log message. 2017-07-27 14:37:39 -07:00
Paddy
d3426d5bc6 Don't set IDs in RMW loops.
We don't need to set the ID to "" in read-modify-write helpers, because
once they're done, we read anyways to update state based on the changes.
And that read checks if the binding/member still exists, and does the
SetId("") if it doesn't.

This way, we stick with state only getting set based on the API state,
not by what we think the state will be.
2017-07-27 14:29:25 -07:00
Paddy
ac5df40896 Return a type that was needed, rename a test function.
Tests need to have unique names. Whoooops.

Also, the Elem property accepts an interface I guess, which means we
actually need the struct type repetition there.
2017-07-27 14:11:52 -07:00
Paddy
f88e0429c7 Test adding multiple bindings at once. 2017-07-27 14:06:15 -07:00
Paddy
78545359bd Add logging statements, update : to / in IDs.
Update member IDs to use / instead of :.

Make sure we're logging any time we remove something from state.
2017-07-27 14:01:47 -07:00
Paddy
f94c3872af Switch to / as separator.
Switch to using / as a separator for IDs, instead of :.
2017-07-27 13:50:31 -07:00
Paddy
adc206a02d Add test case for updating to remove member.
Add a test case that updates a binding to remove a member.
2017-07-27 13:50:06 -07:00
Paddy
199ff5d1f1 Excise unnecessary type declarations.
Some struct types can be inferred instead of being repeated, so let's
take advantage of that.
2017-07-27 13:39:23 -07:00
Riley Karson
50069050c1 Removed the Compute Operation Wait Zone and migrated to universal wait. (#251)
* Removed the Compute Operation Wait Zone and migrated to universal wait.

* Removed unused var.
2017-07-27 08:48:25 -07:00
Riley Karson
01eecebac6 Remove the Compute Operation Wait Region methods, migrating to the universal wait. (#246) 2017-07-26 15:24:03 -07:00
Riley Karson
232cb87c7a Add versioned Beta support to google_compute_instance_group_manager (#234)
* Vendor GCP Compute Beta client library.

* Refactor resource_compute_instance_group_manager for multi version support (#129)

* Refactor resource_compute_instance_group_manager for multi version support.
* Minor changes based on review.
* Removed type-specific API version conversion functions.

* Add support for Beta operations.

* Add v0beta support to google_compute_instance_group_manager.

* Renamed Key to Feature, added comments & updated some parameter names.

* Fix code and tests for version finder to match fields that don't have a change.

* Store non-v1 resources' self links as v1 so that dependent single-version resources don't see diffs.

* Fix weird change to vendor.json from merge.

* Add a note that Convert loses ForceSendFields, fix failing test.

* Moved nil type to a switch case in compute_shared_operation.go.

* Move base api version declaration above schema.
2017-07-26 13:37:59 -07:00
Dana Hoffman
42a898dbd0 Add support for node pool autoscaling (#157)
* add node pool autoscaling

* docs for node pool autoscaling

* remove enabled attribute

* remove enabled from docs
2017-07-26 13:21:51 -07:00
Riley Karson
1f8254f260 Migrate all occurrences of WaitGlobal/WaitGlobal time to universal wait. (#243) 2017-07-26 09:40:06 -07:00
Vincent Roseberry
01ef451a94 Support import for google_compute_subnetwork (#227) 2017-07-26 09:30:59 -07:00
jimmy-btn
12ed8d8dd9 Update expected type of expiration time (#209) 2017-07-25 16:58:35 -07:00
Riley Karson
ec162c666c Refactor Compute Operations to work identically & introduce a scope-less API (#191)
* Refactor compute_operation.go to duplicate less code.

* Determine what scope type an Operation is from it's Operation object.

* Inlined operation type switch statement into if/else methods.
2017-07-25 16:22:27 -07:00
Paddy
775d931476 Merge pull request #6 from pdecat/f-google-storage-bucket-lifecycle
Add provider/google/google_storage_bucket lifecycle interface
2017-07-25 16:11:59 -07:00
Paddy
655435f940 Terraform fmt on our test configs. 2017-07-25 12:17:20 -07:00
Paddy
91d227cdb0 id => project_id
For clarity and explicitness(? is that a word?) use the project_id
instead of Terraform's internal id in our test configs.
2017-07-25 12:15:28 -07:00
Paddy
b0e3790b61 Use the policy r/m/w helper and handle edge case.
Use the new projectIamPolicyReadModifyWrite helper to manage the RMW
loop for our policy member resource.

Handle the case of having a binding server-side that doesn't have the
member we expect more elegantly.
2017-07-25 12:14:05 -07:00
Paddy
52d552d740 id => project_id in test configs.
Helps keep things explicit.
2017-07-25 12:00:03 -07:00
Paddy
f9eeb36657 terraform fmt test configs. 2017-07-25 11:56:27 -07:00
Paddy
5282ad7b12 Use string slice conversion helper. 2017-07-25 11:52:38 -07:00
Paddy
729e9fc501 Create an iam policy read/modify/write helper.
We were repeating that logic a lot, so this helper just reads a policy,
calls the passed modify function on the policy, then writes the policy
back and takes care of the optimistic concurrency logic for the caller.
So now all the caller has to do is the unique part, which is the modify
function.
2017-07-25 11:43:49 -07:00