@@ -24,6 +24,16 @@ import (
2424 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
2525)
2626
27+ func suppressGkeHubEndpointSelfLinkDiff (_ , old , new string , _ * schema.ResourceData ) bool {
28+ // The custom expander injects //container.googleapis.com/ if a selflink is supplied.
29+ selfLink := strings .TrimPrefix (old , "//container.googleapis.com/" )
30+ if selfLink == new {
31+ return true
32+ }
33+
34+ return false
35+ }
36+
2737func resourceGKEHubMembership () * schema.Resource {
2838 return & schema.Resource {
2939 Create : resourceGKEHubMembershipCreate ,
@@ -89,13 +99,15 @@ with length <2000 characters. For example: 'https://container.googleapis.com/v1/
8999 Elem : & schema.Resource {
90100 Schema : map [string ]* schema.Schema {
91101 "resource_link" : {
92- Type : schema .TypeString ,
93- Required : true ,
94- ForceNew : true ,
102+ Type : schema .TypeString ,
103+ Required : true ,
104+ ForceNew : true ,
105+ DiffSuppressFunc : suppressGkeHubEndpointSelfLinkDiff ,
95106 Description : `Self-link of the GCP resource for the GKE cluster.
96107For example: '//container.googleapis.com/projects/my-project/zones/us-west1-a/clusters/my-cluster'.
97108It can be at the most 1000 characters in length. If the cluster is provisioned with Terraform,
98- this is '"//container.googleapis.com/${google_container_cluster.my-cluster.id}"'.` ,
109+ this can be '"//container.googleapis.com/${google_container_cluster.my-cluster.id}"' or
110+ 'google_container_cluster.my-cluster.id'.` ,
99111 },
100112 },
101113 },
@@ -531,7 +543,12 @@ func expandGKEHubMembershipEndpointGkeCluster(v interface{}, d TerraformResource
531543}
532544
533545func expandGKEHubMembershipEndpointGkeClusterResourceLink (v interface {}, d TerraformResourceData , config * Config ) (interface {}, error ) {
534- return v , nil
546+ if strings .HasPrefix (v .(string ), "//container.googleapis.com/" ) {
547+ return v , nil
548+ } else {
549+ v = "//container.googleapis.com/" + v .(string )
550+ return v , nil
551+ }
535552}
536553
537554func expandGKEHubMembershipAuthority (v interface {}, d TerraformResourceData , config * Config ) (interface {}, error ) {
0 commit comments