Skip to content

Commit 360260d

Browse files
authored
Add project to container cluster import name. (#1282)
* allow import of container cluster by project as well * update docs for importing container cluster with project * combine tests
1 parent b80aad4 commit 360260d

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

google/resource_container_cluster.go

+12-6
Original file line numberDiff line numberDiff line change
@@ -1492,14 +1492,20 @@ func flattenPodSecurityPolicyConfig(c *containerBeta.PodSecurityPolicyConfig) []
14921492

14931493
func resourceContainerClusterStateImporter(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
14941494
parts := strings.Split(d.Id(), "/")
1495-
if len(parts) != 2 {
1496-
return nil, fmt.Errorf("Invalid container cluster specifier. Expecting {zone}/{name}")
1497-
}
14981495

1499-
d.Set("zone", parts[0])
1500-
d.Set("name", parts[1])
1501-
d.SetId(parts[1])
1496+
switch len(parts) {
1497+
case 2:
1498+
d.Set("zone", parts[0])
1499+
d.Set("name", parts[1])
1500+
case 3:
1501+
d.Set("project", parts[0])
1502+
d.Set("zone", parts[1])
1503+
d.Set("name", parts[2])
1504+
default:
1505+
return nil, fmt.Errorf("Invalid container cluster specifier. Expecting {zone}/{name} or {project}/{zone}/{name}")
1506+
}
15021507

1508+
d.SetId(parts[len(parts)-1])
15031509
return []*schema.ResourceData{d}, nil
15041510
}
15051511

google/resource_container_cluster_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ func TestAccContainerCluster_basic(t *testing.T) {
3232
ImportState: true,
3333
ImportStateVerify: true,
3434
},
35+
{
36+
ResourceName: "google_container_cluster.primary",
37+
ImportStateIdPrefix: fmt.Sprintf("%s/us-central1-a/", getTestProjectFromEnv()),
38+
ImportState: true,
39+
ImportStateVerify: true,
40+
},
3541
},
3642
})
3743
}

website/docs/r/container_cluster.html.markdown

+4-1
Original file line numberDiff line numberDiff line change
@@ -377,8 +377,11 @@ exported:
377377

378378
## Import
379379

380-
GKE clusters can be imported using the `zone`, and `name`, e.g.
380+
GKE clusters can be imported using the `project` , `zone`, and `name`. If
381+
the project is omitted, the default provider value will be used. Examples:
381382

382383
```
384+
$ terraform import google_container_cluster.mycluster my-gcp-project/us-east1-a/my-cluster
385+
383386
$ terraform import google_container_cluster.mycluster us-east1-a/my-cluster
384387
```

0 commit comments

Comments
 (0)