Skip to content

Commit 60a1a4b

Browse files
Add support for the management field in ConfigManagement Fleet-level default config (#11291) (#18963)
[upstream:fcb51889011bfd782ee5127815ef6635c35eef80] Signed-off-by: Modular Magician <magic-modules@google.com>
1 parent 7a12ffc commit 60a1a4b

File tree

4 files changed

+114
-0
lines changed

4 files changed

+114
-0
lines changed

.changelog/11291.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
gkehub: added `management` field to ConfigManagement `fleet_default_member_config`
3+
```

google/services/gkehub2/resource_gke_hub_feature.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,12 @@ func ResourceGKEHub2Feature() *schema.Resource {
192192
},
193193
},
194194
},
195+
"management": {
196+
Type: schema.TypeString,
197+
Optional: true,
198+
ValidateFunc: verify.ValidateEnum([]string{"MANAGEMENT_UNSPECIFIED", "MANAGEMENT_AUTOMATIC", "MANAGEMENT_MANUAL", ""}),
199+
Description: `Set this field to MANAGEMENT_AUTOMATIC to enable Config Sync auto-upgrades, and set this field to MANAGEMENT_MANUAL or MANAGEMENT_UNSPECIFIED to disable Config Sync auto-upgrades. Possible values: ["MANAGEMENT_UNSPECIFIED", "MANAGEMENT_AUTOMATIC", "MANAGEMENT_MANUAL"]`,
200+
},
195201
"version": {
196202
Type: schema.TypeString,
197203
Optional: true,
@@ -1340,6 +1346,8 @@ func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagement(v interface{}
13401346
transformed := make(map[string]interface{})
13411347
transformed["version"] =
13421348
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementVersion(original["version"], d, config)
1349+
transformed["management"] =
1350+
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementManagement(original["management"], d, config)
13431351
transformed["config_sync"] =
13441352
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(original["configSync"], d, config)
13451353
return []interface{}{transformed}
@@ -1348,6 +1356,10 @@ func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementVersion(v inte
13481356
return v
13491357
}
13501358

1359+
func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementManagement(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1360+
return v
1361+
}
1362+
13511363
func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
13521364
if v == nil {
13531365
return nil
@@ -2234,6 +2246,13 @@ func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagement(v interface{},
22342246
transformed["version"] = transformedVersion
22352247
}
22362248

2249+
transformedManagement, err := expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementManagement(original["management"], d, config)
2250+
if err != nil {
2251+
return nil, err
2252+
} else if val := reflect.ValueOf(transformedManagement); val.IsValid() && !tpgresource.IsEmptyValue(val) {
2253+
transformed["management"] = transformedManagement
2254+
}
2255+
22372256
transformedConfigSync, err := expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(original["config_sync"], d, config)
22382257
if err != nil {
22392258
return nil, err
@@ -2248,6 +2267,10 @@ func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementVersion(v inter
22482267
return v, nil
22492268
}
22502269

2270+
func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementManagement(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
2271+
return v, nil
2272+
}
2273+
22512274
func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
22522275
l := v.([]interface{})
22532276
if len(l) == 0 || l[0] == nil {

google/services/gkehub2/resource_gke_hub_feature_test.go

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,10 +434,53 @@ func TestAccGKEHubFeature_FleetDefaultMemberConfigConfigManagement(t *testing.T)
434434
ImportState: true,
435435
ImportStateVerify: true,
436436
},
437+
{
438+
Config: testAccGKEHubFeature_FleetDefaultMemberConfigConfigManagementEnableAutomaticManagementUpdate(context),
439+
},
440+
{
441+
ResourceName: "google_gke_hub_feature.feature",
442+
ImportState: true,
443+
ImportStateVerify: true,
444+
},
445+
{
446+
Config: testAccGKEHubFeature_FleetDefaultMemberConfigConfigManagementRemovalUpdate(context),
447+
},
448+
{
449+
ResourceName: "google_gke_hub_feature.feature",
450+
ImportState: true,
451+
ImportStateVerify: true,
452+
},
453+
{
454+
Config: testAccGKEHubFeature_FleetDefaultMemberConfigConfigManagementAutomaticManagement(context),
455+
},
456+
{
457+
ResourceName: "google_gke_hub_feature.feature",
458+
ImportState: true,
459+
ImportStateVerify: true,
460+
},
437461
},
438462
})
439463
}
440464

465+
func testAccGKEHubFeature_FleetDefaultMemberConfigConfigManagementAutomaticManagement(context map[string]interface{}) string {
466+
return gkeHubFeatureProjectSetupForGA(context) + acctest.Nprintf(`
467+
resource "google_gke_hub_feature" "feature" {
468+
name = "configmanagement"
469+
location = "global"
470+
fleet_default_member_config {
471+
configmanagement {
472+
management = "MANAGEMENT_AUTOMATIC"
473+
config_sync {
474+
enabled = true
475+
}
476+
}
477+
}
478+
depends_on = [google_project_service.anthos, google_project_service.gkehub, google_project_service.acm]
479+
project = google_project.project.project_id
480+
}
481+
`, context)
482+
}
483+
441484
func testAccGKEHubFeature_FleetDefaultMemberConfigConfigManagement(context map[string]interface{}) string {
442485
return gkeHubFeatureProjectSetupForGA(context) + acctest.Nprintf(`
443486
resource "google_gke_hub_feature" "feature" {
@@ -473,6 +516,7 @@ resource "google_gke_hub_feature" "feature" {
473516
fleet_default_member_config {
474517
configmanagement {
475518
version = "1.16.1"
519+
management = "MANAGEMENT_MANUAL"
476520
config_sync {
477521
enabled = true
478522
prevent_drift = true
@@ -493,6 +537,45 @@ resource "google_gke_hub_feature" "feature" {
493537
`, context)
494538
}
495539

540+
func testAccGKEHubFeature_FleetDefaultMemberConfigConfigManagementEnableAutomaticManagementUpdate(context map[string]interface{}) string {
541+
return gkeHubFeatureProjectSetupForGA(context) + acctest.Nprintf(`
542+
resource "google_gke_hub_feature" "feature" {
543+
name = "configmanagement"
544+
location = "global"
545+
fleet_default_member_config {
546+
configmanagement {
547+
version = "1.16.1"
548+
management = "MANAGEMENT_AUTOMATIC"
549+
config_sync {
550+
prevent_drift = true
551+
source_format = "unstructured"
552+
oci {
553+
sync_repo = "us-central1-docker.pkg.dev/corp-gke-build-artifacts/acm/configs:latest"
554+
policy_dir = "/acm/nonprod-root/"
555+
secret_type = "gcpserviceaccount"
556+
sync_wait_secs = "15"
557+
gcp_service_account_email = "gke-cluster@gke-foo-nonprod.iam.gserviceaccount.com"
558+
}
559+
}
560+
}
561+
}
562+
depends_on = [google_project_service.anthos, google_project_service.gkehub, google_project_service.acm]
563+
project = google_project.project.project_id
564+
}
565+
`, context)
566+
}
567+
568+
func testAccGKEHubFeature_FleetDefaultMemberConfigConfigManagementRemovalUpdate(context map[string]interface{}) string {
569+
return gkeHubFeatureProjectSetupForGA(context) + acctest.Nprintf(`
570+
resource "google_gke_hub_feature" "feature" {
571+
name = "configmanagement"
572+
location = "global"
573+
depends_on = [google_project_service.anthos, google_project_service.gkehub, google_project_service.acm]
574+
project = google_project.project.project_id
575+
}
576+
`, context)
577+
}
578+
496579
func TestAccGKEHubFeature_Clusterupgrade(t *testing.T) {
497580
// VCR fails to handle batched project services
498581
acctest.SkipIfVcr(t)

website/docs/r/gke_hub_feature.html.markdown

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,11 @@ The following arguments are supported:
480480
(Optional)
481481
Version of ACM installed
482482

483+
* `management` -
484+
(Optional)
485+
Set this field to MANAGEMENT_AUTOMATIC to enable Config Sync auto-upgrades, and set this field to MANAGEMENT_MANUAL or MANAGEMENT_UNSPECIFIED to disable Config Sync auto-upgrades.
486+
Possible values are: `MANAGEMENT_UNSPECIFIED`, `MANAGEMENT_AUTOMATIC`, `MANAGEMENT_MANUAL`.
487+
483488
* `config_sync` -
484489
(Optional)
485490
ConfigSync configuration for the cluster

0 commit comments

Comments
 (0)