Commit Graph

808 Commits

Author SHA1 Message Date
Emily Ye
f8c3a10809 Merge branch 'master' of https://github.com/terraform-providers/terraform-provider-google into container_cluster_list_param_multifix 2018-06-22 10:31:06 -07:00
Paddy
d9fa83f6db
Merge pull request #1692 from terraform-providers/paddy_storage_bucket_acl_custom_diff
Fix the perma-diff in storage bucket ACLs
2018-06-22 09:39:29 -07:00
Paddy
9ffe753bb4
Merge pull request #1693 from terraform-providers/paddy_dns_managed_zone_data_source
Update DNS managed zone in tests.
2018-06-22 09:38:37 -07:00
Paddy
fe0950d8e1
Merge pull request #1684 from ndmckinley/sql-disk
Reject disk shrinkage on SQL instances
2018-06-22 00:30:57 -07:00
Paddy Carver
2edf3087a9 Update DNS managed zone in tests.
Move from using qa.test.com, a domain we don't own, to qa.tf-test.club,
a domain we do own, so the domain validation doesn't cause our tests to
fail anymore.
2018-06-22 00:00:30 -07:00
Paddy Carver
1c8d56eca2 Fix the perma-diff in storage bucket ACLs.
Add a CustomDiff function to storage bucket ACLs that will ignore a diff
if the config and state have the same role_entities, even if they're in
a different order.

Fixes #1525.
2018-06-21 23:42:25 -07:00
The Magician
a3964baed6 Fix some unit test failures in generated code where custom expanders are used. (#1691)
<!-- This change is generated by MagicModules. -->
/cc @ndmckinley
2018-06-21 17:46:50 -07:00
Emily Ye
f3b092b3ca make sure TypeList keys still have empty values 2018-06-20 16:45:49 -07:00
Nathan McKinley
a64056156c Reject disk shrinkage. 2018-06-20 15:17:49 -07:00
emily
a2b95e35e6
Add diff suppress for empty/default pod_security_policy_config (#1670)
* add diff suppress for pod_security_policy_config

* change key comparison to exact
2018-06-19 16:37:10 -07:00
The Magician
57a2e984ca Autogenerate Subnetwork. (#1661) 2018-06-19 13:56:06 -07:00
Bastien Cadiot
751a3d5c9e Add project variable for GCS service account datasource (#1677) 2018-06-19 10:30:20 -07:00
Jonathan Pentecost
f8a3335bf9 service_account_key: regression fix for v1.14 (#1664)
Commit 8f31fec introduced a bug for the 'service_account_key' resource
where it required a project be set either in the provider or in the
resource for 'service_account_key', but a project isn't required if the
service account is a service account fully qualified name or a service
account email.

This PR relaxes the requirement that a project needs to be set for the
'service_account_key' resource, 'service_account' datasource and
'service_account_key' datasource, but will error if we try to build a
fully qualified name from a service account id when no project can be
found.

This also cleans up 'serviceAccountFQN' so it is slightly easier to
follow and return an error if there is no project but we need one to
build the service account fully qualified name.

Fixes: #1655
2018-06-18 13:37:41 -07:00
The Magician
43cccf3e2c Minor cleanup of disk's labelFingerprint. (#1651) 2018-06-14 20:34:10 -05:00
Dana Hoffman
d884312f88
don't error if service account key is already gone on delete (#1659)
Fixes #1657
2018-06-14 14:49:24 -07:00
The Magician
f4e4d880c5 Autogenerate Route resource. (#1647) 2018-06-14 15:22:02 -05:00
Daisuke Fujita
b7f2025fb9 Add project to container_node_pool import name (#1653)
## What

As well as https://github.com/terraform-providers/terraform-provider-google/pull/1282 , make `resource_container_node_pool` importer accept `{project}/{zone}/{cluster}/{name}` format to specify the project where the node pool belongs to actually.

## Why

Sometimes I want to import container pool in different project from default SA's. However, currently there is no way to specify project the target node pool belongs to, Terraform tries to retrieve node pool from SA's project, then it fails due to `You cannot import non-existent resources using Terraform import.` error.
2018-06-14 09:54:08 -07:00
Dana Hoffman
d424cf05ba
fix iot updatemask and docs (#1640) 2018-06-13 12:37:21 -07:00
Dana Hoffman
0497eec580
use same mutex for project_iam_policy as the other project_iam resources (#1645) 2018-06-13 12:35:49 -07:00
The Magician
d4b4436feb Store address region as short name instead of full URL. Fixes currently failing test TestAccComputeVpnTunnel_defaultTrafficSelectors. (#1646)
<!-- This change is generated by MagicModules. -->
/cc @danawillow
2018-06-13 11:35:04 -07:00
The Magician
50f00fa6dc Autogenerate the Address resource. (#1634) 2018-06-11 17:31:33 -07:00
Dana Hoffman
f0c5b34a1d
add error checking for bigquery dataset id (#1638)
* add error checking for bigquery dataset id

* use existing regexes for import validation
2018-06-11 14:20:11 -07:00
The Magician
605c950b18 Add DiffSuppress for global address ip_version. IPV4 and empty are equivalent, but the API will return whichever one was sent on creation. Fixes #1637. (#1639) 2018-06-11 14:17:04 -07:00
Dana Hoffman
13eba21650
update sql user docs/comments (#1635) 2018-06-11 13:47:01 -07:00
Paddy
430b735dd0
Merge pull request #1621 from terraform-providers/paddy_app_engine_app
Make App Engine applications updatable
2018-06-11 13:09:50 -07:00
Paddy
8f9d0785f2
Merge pull request #1622 from terraform-providers/paddy_undeprecate_ssl_name_prefix
Undeprecate name_prefix for ssl_certificate.
2018-06-11 13:09:08 -07:00
Dana Hoffman
c505255556
changes to make it easier to autogen address (#1607) 2018-06-08 16:35:36 -07:00
The Magician
877f8107f8 Check for done redis operations before waiting on them. Fixes #1630. (#1633) 2018-06-08 16:32:24 -07:00
Dana Hoffman
d00e55f11b
check for done operations before waiting on them (#1632) 2018-06-08 16:04:55 -07:00
The Magician
d7d72398b6 zone field in compute disk should be optional (#1631) 2018-06-08 15:20:39 -07:00
Vincent Roseberry
4f89945cce
Store v1 self_link for network and subnetwork (#1629) 2018-06-08 09:55:21 -07:00
Olve S. Hansen
d605e0f170 Fixes #1624 - issues with consecutive whitespace. (#1625) 2018-06-08 09:37:29 -07:00
Vincent Roseberry
32d965062d
Support update for DNS Managed Zone (#1617)
* vendor google.golang.org/api/dns/v1beta2

* Support update for DNS Managed Zone
2018-06-08 09:27:08 -07:00
Paddy
470f27b659 Undeprecate name_prefix for ssl_certificate.
As discussed in #1326, we're not going to remove name_prefix for
compute_ssl_certificate, because it makes the common use case more
ergonomic by a good amount, and the only cost is it's harder to maintain
the autogenerated code, and we've decided the benefits outweigh the
costs in this circumstance.
2018-06-07 18:29:45 -07:00
Paddy
8296c16168 Remove extraneous Exists checks in App Engine tests. 2018-06-07 18:16:48 -07:00
Paddy
4176a98949 terraform fmt all configs in project_test. 2018-06-07 18:14:43 -07:00
Paddy
6910d8277e SetPartial on app_engine. 2018-06-07 18:11:07 -07:00
Paddy
4999637399 Remove unnecessary CustomizeDiff function. 2018-06-07 18:09:51 -07:00
Paddy
16ab5bb14b Reorder fields. 2018-06-07 18:09:14 -07:00
Paddy Carver
6d040db9d8 Really fix location_id force new. 2018-06-07 15:37:30 -07:00
Sébastien GLON
d766990ce9 Add new google_compute_regions (#1603)
* Add new google_compute_regions

* Add docs

* correct doc
2018-06-07 09:52:12 -07:00
Dana Hoffman
e92fddd33e
Fix forwarding rule data source test (#1606) 2018-06-06 18:40:42 -07:00
The Magician
edb34aaaf7 Fix redis authorized network and tests. The Redis API currently only accepts partial links. The tests weren't failing because they weren't actually using the network (oops). There were a few other test issues that I fixed while I was there. Fixes #1571. (#1599)
<!-- This change is generated by MagicModules. -->
/cc @danawillow
2018-06-06 10:55:04 -07:00
Paddy Carver
53cc357b4c Fix network_tier tests.
Make network_tier computed, so when it's not specified we don't get a
permadiff.

Always store v1 self_links, so we don't get a permadiff.
2018-06-05 17:49:33 -07:00
Paddy Carver
9ebeeda1d2 Fix forcenew for location_id. 2018-06-05 15:31:52 -07:00
Dana Hoffman
2f5c77cd7f add support for network tiers (#1530)
* add support for network tiers

* Update resource_compute_forwarding_rule.go
2018-06-05 12:35:44 -07:00
Jamie Lennox
f8eb752809 Allow using in repo configuration for cloudbuild trigger (#1557)
* Allow using in repo configuration for cloudbuild trigger

Cloudbuild triggers have a complex configuration that can be defined
from the API. When using the console, the more typical way of doing this
is to defined the configuration within the repository and point the
configuration to the file that defines the config.

This can be supported by sending the filename parameter instead of the
build parameter, however only one can be sent.

* Acceptance testing for cloudbuild trigger with filename

Ensure that when a cloudbuild repo trigger is created with a filename,
that filename is what actually ends up in the cloud.

* Don't specify "by default" in cloudbuild-trigger.

The docs shouldn't say that "cloudbuild.yaml" is used by default. There
is no default from the APIs, but the console suggest using this value.
Just say it's the typical value in documentation.
2018-06-05 10:17:20 -07:00
The Magician
164936e4a5 add update support for redis (#1590)
* add update support for redis

* add test for redis update
2018-06-04 17:41:48 -07:00
Tenorio Orta JM
6864f1f9e5 Added GCP Netblock Data Source (#1416) (#1580)
* Added GCP Netblock Data Source (#1416)

* Added docs for google_netblock_ip_ranges (#1416)

* Code review changes (#1416)
2018-06-04 16:31:09 -07:00
Mikaël Gibert
d60381a693 Implement multiple version in instance group manager (#1499)
Hi there,

Here is an attempt to implement canary releases ( #1252 ). This is the first time I write golang and make a terraform contribution, I opened the PR to obtain feedback and advices so please let me know how I can improve this code!

In addition I used `make fmt` to format the code but left some lines bigger than 80 characters, do I need to split them ?

I tested the feature against a project with the following configuration:
```
resource "google_compute_health_check" "mikael-hackathon-healthcheck" {
  name                = "mikael-hackathon-healthcheck"
  check_interval_sec  = 1
  timeout_sec         = 1
  healthy_threshold   = 2
  unhealthy_threshold = 10

  http_health_check {
    request_path = "/"
    port         = "80"
  }
}

resource "google_compute_instance_template" "mikael-hackaton-template" {
  name_prefix = "mikael-hackaton-"
  description = "This template is used to create app server instances."

  tags = ["loadbalanced", "internal-web", "hackaton"]

  labels = {
    environment = "hackaton"
  }

  instance_description = "Hackaton demo rolling upgrade"
  machine_type         = "n1-standard-1"
  can_ip_forward       = false

  scheduling {
    automatic_restart   = true
    on_host_maintenance = "MIGRATE"
  }

  disk {
    source_image = "debian-cloud/debian-9"
    disk_type    = "pd-standard"
    disk_size_gb = 20
    auto_delete  = true
    boot         = true
  }

  network_interface {
    network       = "default"
    access_config = {}
  }

  service_account {
    email  = "${google_service_account.mikael-hackaton.email}"
    scopes = ["cloud-platform"]
  }

  lifecycle {
    create_before_destroy = true
  }

  metadata_startup_script = "apt-get update && apt-get install -y apache2 && echo I am stable version at $(hostname) > /var/www/html/index.html"
}

resource "google_compute_instance_template" "mikael-hackaton-template-canary" {
  name_prefix = "mikael-hackaton-canary"
  description = "This template is used to create app server instances."

  tags = ["loadbalanced", "internal-web", "hackaton"]

  labels = {
    environment = "hackaton"
  }

  instance_description = "Hackaton demo rolling upgrade"
  machine_type         = "n1-standard-1"
  can_ip_forward       = false

  scheduling {
    automatic_restart   = true
    on_host_maintenance = "MIGRATE"
  }

  disk {
    source_image = "debian-cloud/debian-9"
    disk_type    = "pd-standard"
    disk_size_gb = 20
    auto_delete  = true
    boot         = true
  }

  network_interface {
    network       = "default"
    access_config = {}
  }

  service_account {
    email  = "${google_service_account.mikael-hackaton.email}"
    scopes = ["cloud-platform"]
  }

  lifecycle {
    create_before_destroy = true
  }

  metadata_startup_script = "apt-get update && apt-get install -y apache2 && echo I am a canary at $(hostname) > /var/www/html/index.html"
}

resource "google_compute_target_pool" "mikael-hackaton-target-pool" {
  name = "mikael-hackaton-target-pool"
}

resource "google_compute_instance_group_manager" "mikael-hackaton-manager" {
  name = "mikael-hackaton-manager"
  base_instance_name = "mikael-hackaton"
  #instance_template = "${google_compute_instance_template.mikael-hackaton-template.self_link}"
  update_strategy   = "ROLLING_UPDATE"
  zone              = "${var.zone}"
  target_pools = ["${google_compute_target_pool.mikael-hackaton-target-pool.self_link}"]
  target_size  = 5

  version {
    name = "primary"
    instance_template = "${google_compute_instance_template.mikael-hackaton-template.self_link}"
  }

  version {
    name = "canary"
    instance_template = "${google_compute_instance_template.mikael-hackaton-template-canary.self_link}"
    target_size_fixed = 1
  }

  named_port {
    name = "http"
    port = 80
  }

  auto_healing_policies {
    health_check      = "${google_compute_health_check.mikael-hackathon-healthcheck.self_link}"
    initial_delay_sec = 10
  }

  rolling_update_policy {
    type                    = "PROACTIVE"
    minimal_action          = "REPLACE"
    max_surge_percent       = 100
    max_unavailable_percent = 50
    min_ready_sec           = 5
  }
}
```
2018-06-04 15:34:48 -07:00