Skip to content

Commit 77c1806

Browse files
Changes to add MCP support in service mesh gke hub feature (#6853) (#4927)
Signed-off-by: Modular Magician <[email protected]> Signed-off-by: Modular Magician <[email protected]>
1 parent 84d86e0 commit 77c1806

File tree

6 files changed

+95
-13
lines changed

6 files changed

+95
-13
lines changed

.changelog/6853.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
anthos-fleet-management: added option `mesh: control_plane` to resource `google_gke_hub_feature_membership`.
3+
```

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ go 1.18
33

44
require (
55
cloud.google.com/go/bigtable v1.17.0
6-
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.4
6+
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.27.1
77
github.com/apparentlymart/go-cidr v1.1.0
88
github.com/client9/misspell v0.3.4
99
github.com/davecgh/go-spew v1.1.1

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
5555
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
5656
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=
5757
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=
58-
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.4 h1:nP8L2TqVbGehmlt6sfYiu4BKE0lJrGW1RrtP9/+FwfY=
59-
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.4/go.mod h1:pL2Qt5HT+x6xrTd806oMiM3awW6kNIXB/iiuClz6m6k=
58+
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.27.1 h1:cjRzz6gP7oxlYq+GEEhOU5HCNlG4Wc+jKxllKFayJBA=
59+
github.com/GoogleCloudPlatform/declarative-resource-client-library v1.27.1/go.mod h1:pL2Qt5HT+x6xrTd806oMiM3awW6kNIXB/iiuClz6m6k=
6060
github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
6161
github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
6262
github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=

google-beta/resource_gke_hub_feature_membership.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,12 @@ func GkeHubFeatureMembershipConfigmanagementPolicyControllerMonitoringSchema() *
334334
func GkeHubFeatureMembershipMeshSchema() *schema.Resource {
335335
return &schema.Resource{
336336
Schema: map[string]*schema.Schema{
337+
"control_plane": {
338+
Type: schema.TypeString,
339+
Optional: true,
340+
Description: "Whether to automatically manage Service Mesh control planes. Possible values: CONTROL_PLANE_MANAGEMENT_UNSPECIFIED, AUTOMATIC, MANUAL",
341+
},
342+
337343
"management": {
338344
Type: schema.TypeString,
339345
Optional: true,
@@ -820,7 +826,8 @@ func expandGkeHubFeatureMembershipMesh(o interface{}) *gkehub.FeatureMembershipM
820826
}
821827
obj := objArr[0].(map[string]interface{})
822828
return &gkehub.FeatureMembershipMesh{
823-
Management: gkehub.FeatureMembershipMeshManagementEnumRef(obj["management"].(string)),
829+
ControlPlane: gkehub.FeatureMembershipMeshControlPlaneEnumRef(obj["control_plane"].(string)),
830+
Management: gkehub.FeatureMembershipMeshManagementEnumRef(obj["management"].(string)),
824831
}
825832
}
826833

@@ -829,7 +836,8 @@ func flattenGkeHubFeatureMembershipMesh(obj *gkehub.FeatureMembershipMesh) inter
829836
return nil
830837
}
831838
transformed := map[string]interface{}{
832-
"management": obj.Management,
839+
"control_plane": obj.ControlPlane,
840+
"management": obj.Management,
833841
}
834842

835843
return []interface{}{transformed}

google-beta/resource_gke_hub_feature_membership_test.go

Lines changed: 74 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -588,7 +588,7 @@ func TestAccGkeHubFeatureMembership_gkehubFeatureMesh(t *testing.T) {
588588
CheckDestroy: testAccCheckGKEHubFeatureDestroyProducer(t),
589589
Steps: []resource.TestStep{
590590
{
591-
Config: testAccGkeHubFeatureMembership_gkehubFeatureMeshStart(context),
591+
Config: testAccGkeHubFeatureMembership_meshStart(context),
592592
Check: resource.ComposeTestCheckFunc(
593593
testAccCheckGkeHubFeatureMembershipPresent(t, fmt.Sprintf("tf-test-gkehub%s", context["random_suffix"]), "global", "servicemesh", fmt.Sprintf("tf-test1%s", context["random_suffix"])),
594594
),
@@ -599,7 +599,18 @@ func TestAccGkeHubFeatureMembership_gkehubFeatureMesh(t *testing.T) {
599599
ImportStateVerify: true,
600600
},
601601
{
602-
Config: testAccGkeHubFeatureMembership_gkehubFeatureMeshUpdate(context),
602+
Config: testAccGkeHubFeatureMembership_meshUpdateManagement(context),
603+
Check: resource.ComposeTestCheckFunc(
604+
testAccCheckGkeHubFeatureMembershipPresent(t, fmt.Sprintf("tf-test-gkehub%s", context["random_suffix"]), "global", "servicemesh", fmt.Sprintf("tf-test1%s", context["random_suffix"])),
605+
),
606+
},
607+
{
608+
ResourceName: "google_gke_hub_feature_membership.feature_member",
609+
ImportState: true,
610+
ImportStateVerify: true,
611+
},
612+
{
613+
Config: testAccGkeHubFeatureMembership_meshUpdateControlPlane(context),
603614
Check: resource.ComposeTestCheckFunc(
604615
testAccCheckGkeHubFeatureMembershipPresent(t, fmt.Sprintf("tf-test-gkehub%s", context["random_suffix"]), "global", "servicemesh", fmt.Sprintf("tf-test1%s", context["random_suffix"])),
605616
),
@@ -613,15 +624,15 @@ func TestAccGkeHubFeatureMembership_gkehubFeatureMesh(t *testing.T) {
613624
})
614625
}
615626

616-
func testAccGkeHubFeatureMembership_gkehubFeatureMeshStart(context map[string]interface{}) string {
627+
func testAccGkeHubFeatureMembership_meshStart(context map[string]interface{}) string {
617628
return gkeHubFeatureProjectSetup(context) + Nprintf(`
618629
resource "google_container_cluster" "primary" {
619630
project = google_project.project.project_id
620631
name = "tf-test-cl%{random_suffix}"
621632
location = "us-central1-a"
622633
initial_node_count = 1
623634
provider = google-beta
624-
depends_on = [google_project_service.mci, google_project_service.container, google_project_service.container, google_project_service.gkehub, google_project_service.mesh]
635+
depends_on = [google_project_service.container, google_project_service.gkehub]
625636
}
626637
627638
resource "google_gke_hub_membership" "membership" {
@@ -645,7 +656,7 @@ resource "google_gke_hub_feature" "feature" {
645656
foo = "bar"
646657
}
647658
provider = google-beta
648-
depends_on = [google_project_service.mci, google_project_service.container, google_project_service.container, google_project_service.gkehub]
659+
depends_on = [google_project_service.container, google_project_service.gkehub, google_project_service.mesh]
649660
}
650661
651662
resource "google_service_account" "feature_sa" {
@@ -661,21 +672,22 @@ resource "google_gke_hub_feature_membership" "feature_member" {
661672
membership = google_gke_hub_membership.membership.membership_id
662673
mesh {
663674
management = "MANAGEMENT_AUTOMATIC"
675+
control_plane = "AUTOMATIC"
664676
}
665677
provider = google-beta
666678
}
667679
`, context)
668680
}
669681

670-
func testAccGkeHubFeatureMembership_gkehubFeatureMeshUpdate(context map[string]interface{}) string {
682+
func testAccGkeHubFeatureMembership_meshUpdateManagement(context map[string]interface{}) string {
671683
return gkeHubFeatureProjectSetup(context) + Nprintf(`
672684
resource "google_container_cluster" "primary" {
673685
project = google_project.project.project_id
674686
name = "tf-test-cl%{random_suffix}"
675687
location = "us-central1-a"
676688
initial_node_count = 1
677689
provider = google-beta
678-
depends_on = [google_project_service.mci, google_project_service.container, google_project_service.container]
690+
depends_on = [google_project_service.container, google_project_service.gkehub]
679691
}
680692
681693
resource "google_gke_hub_membership" "membership" {
@@ -699,7 +711,7 @@ resource "google_gke_hub_feature" "feature" {
699711
foo = "bar"
700712
}
701713
provider = google-beta
702-
depends_on = [google_project_service.mci, google_project_service.container, google_project_service.container, google_project_service.gkehub]
714+
depends_on = [google_project_service.container, google_project_service.gkehub, google_project_service.mesh]
703715
}
704716
705717
resource "google_service_account" "feature_sa" {
@@ -721,6 +733,60 @@ resource "google_gke_hub_feature_membership" "feature_member" {
721733
`, context)
722734
}
723735

736+
func testAccGkeHubFeatureMembership_meshUpdateControlPlane(context map[string]interface{}) string {
737+
return gkeHubFeatureProjectSetup(context) + Nprintf(`
738+
resource "google_container_cluster" "primary" {
739+
project = google_project.project.project_id
740+
name = "tf-test-cl%{random_suffix}"
741+
location = "us-central1-a"
742+
initial_node_count = 1
743+
provider = google-beta
744+
depends_on = [google_project_service.container, google_project_service.gkehub]
745+
}
746+
747+
resource "google_gke_hub_membership" "membership" {
748+
project = google_project.project.project_id
749+
membership_id = "tf-test1%{random_suffix}"
750+
endpoint {
751+
gke_cluster {
752+
resource_link = "//container.googleapis.com/${google_container_cluster.primary.id}"
753+
}
754+
}
755+
description = "test resource."
756+
provider = google-beta
757+
}
758+
759+
resource "google_gke_hub_feature" "feature" {
760+
project = google_project.project.project_id
761+
name = "servicemesh"
762+
location = "global"
763+
764+
labels = {
765+
foo = "bar"
766+
}
767+
provider = google-beta
768+
depends_on = [google_project_service.container, google_project_service.gkehub, google_project_service.mesh]
769+
}
770+
771+
resource "google_service_account" "feature_sa" {
772+
project = google_project.project.project_id
773+
account_id = "feature-sa"
774+
provider = google-beta
775+
}
776+
777+
resource "google_gke_hub_feature_membership" "feature_member" {
778+
project = google_project.project.project_id
779+
location = "global"
780+
feature = google_gke_hub_feature.feature.name
781+
membership = google_gke_hub_membership.membership.membership_id
782+
mesh {
783+
control_plane = "MANUAL"
784+
}
785+
provider = google-beta
786+
}
787+
`, context)
788+
}
789+
724790
func gkeHubClusterMembershipSetup(context map[string]interface{}) string {
725791
return Nprintf(`
726792
resource "google_container_cluster" "primary" {

website/docs/r/gke_hub_feature_membership.html.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ resource "google_gke_hub_feature_membership" "feature_member" {
105105
membership = google_gke_hub_membership.membership.membership_id
106106
mesh {
107107
management = "MANAGEMENT_AUTOMATIC"
108+
control_plane = "AUTOMATIC"
108109
}
109110
provider = google-beta
110111
}
@@ -271,6 +272,10 @@ The following arguments are supported:
271272
(Optional)
272273
Whether to automatically manage Service Mesh. Can either be `MANAGEMENT_AUTOMATIC` or `MANAGEMENT_MANUAL`.
273274

275+
* `control_plane` -
276+
(Optional)
277+
Whether to automatically manage Service Mesh Control Plane. Can either be `AUTOMATIC` or `MANUAL`.
278+
274279
## Attributes Reference
275280

276281
In addition to the arguments listed above, the following computed attributes are exported:

0 commit comments

Comments
 (0)