Skip to content

Commit 08cbf32

Browse files
Add two output-only fields (membership_id, membership_location) under google_container_cluster.fleet (#9974) (#6983)
* add 2 output only fields under resource_container_cluster.fleet * fix format * fix format * fix format * fix format * fix format * fix format * fix format * fix format * fix format * update documentation * update documentation * update documentation * update documentation * fix [upstream:3577ce32d9754ee0da8b2c23a4c732ae455ad98f] Signed-off-by: Modular Magician <[email protected]>
1 parent 50d8cb6 commit 08cbf32

File tree

3 files changed

+31
-3
lines changed

3 files changed

+31
-3
lines changed

.changelog/9974.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
container: added output-only fields `membership_id` and `membership_location` under `fleet` in `google_container_cluster` resource
3+
```

google-beta/services/container/resource_container_cluster.go

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2048,6 +2048,16 @@ func ResourceContainerCluster() *schema.Resource {
20482048
Computed: true,
20492049
Description: `Whether the cluster has been registered via the fleet API.`,
20502050
},
2051+
"membership_id": {
2052+
Type: schema.TypeString,
2053+
Computed: true,
2054+
Description: `Short name of the fleet membership, for example "member-1".`,
2055+
},
2056+
"membership_location": {
2057+
Type: schema.TypeString,
2058+
Computed: true,
2059+
Description: `Location of the fleet membership, for example "us-central1".`,
2060+
},
20512061
},
20522062
},
20532063
},
@@ -6025,11 +6035,22 @@ func flattenFleet(c *container.Fleet) []map[string]interface{} {
60256035
if c == nil {
60266036
return nil
60276037
}
6038+
6039+
// Parse membership_id and membership_location from full membership name.
6040+
var membership_id, membership_location string
6041+
membershipRE := regexp.MustCompile(`^(//[a-zA-Z0-9\.\-]+)?/?projects/([^/]+)/locations/([a-zA-Z0-9\-]+)/memberships/([^/]+)$`)
6042+
if match := membershipRE.FindStringSubmatch(c.Membership); match != nil {
6043+
membership_id = match[4]
6044+
membership_location = match[3]
6045+
}
6046+
60286047
return []map[string]interface{}{
60296048
{
6030-
"project": c.Project,
6031-
"membership": c.Membership,
6032-
"pre_registered": c.PreRegistered,
6049+
"project": c.Project,
6050+
"membership": c.Membership,
6051+
"membership_id": membership_id,
6052+
"membership_location": membership_location,
6053+
"pre_registered": c.PreRegistered,
60336054
},
60346055
}
60356056
}

website/docs/r/container_cluster.html.markdown

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1348,6 +1348,10 @@ exported:
13481348

13491349
* `fleet.0.membership` - The resource name of the fleet Membership resource associated to this cluster with format `//gkehub.googleapis.com/projects/{{project}}/locations/{{location}}/memberships/{{name}}`. See the official doc for [fleet management](https://cloud.google.com/kubernetes-engine/docs/fleets-overview).
13501350

1351+
* `fleet.0.membership_id` - The short name of the fleet membership, extracted from `fleet.0.membership`. You can use this field to configure `membership_id` under [google_gkehub_feature_membership](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/gke_hub_feature_membership).
1352+
1353+
* `fleet.0.membership_location` - The location of the fleet membership, extracted from `fleet.0.membership`. You can use this field to configure `membership_location` under [google_gkehub_feature_membership](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/gke_hub_feature_membership).
1354+
13511355
## Timeouts
13521356

13531357
This resource provides the following

0 commit comments

Comments
 (0)