Skip to content

Commit 20b7c28

Browse files
Add support for the metricsGcpServiceAccountEmail field in ConfigManagement Fleet-level default config (#12681) (#9147)
[upstream:a61293e29fee5b53fe684d2e80c70dd9e5353e93] Signed-off-by: Modular Magician <[email protected]>
1 parent 2f7e6c5 commit 20b7c28

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

Diff for: .changelog/12681.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
gkehub2: added support for `fleet_default_member_config.config_management.config_sync.metrics_gcp_service_account_email` field to `google_gke_hub_feature` resource
3+
```

Diff for: google-beta/services/gkehub2/resource_gke_hub_feature.go

+22
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ func ResourceGKEHub2Feature() *schema.Resource {
138138
},
139139
},
140140
},
141+
"metrics_gcp_service_account_email": {
142+
Type: schema.TypeString,
143+
Optional: true,
144+
Description: `The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount 'default' in the namespace 'config-management-monitoring' should be bound to the GSA.`,
145+
},
141146
"oci": {
142147
Type: schema.TypeList,
143148
Optional: true,
@@ -1375,6 +1380,8 @@ func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(v i
13751380
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncEnabled(original["enabled"], d, config)
13761381
transformed["prevent_drift"] =
13771382
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncPreventDrift(original["preventDrift"], d, config)
1383+
transformed["metrics_gcp_service_account_email"] =
1384+
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncMetricsGcpServiceAccountEmail(original["metricsGcpServiceAccountEmail"], d, config)
13781385
transformed["git"] =
13791386
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(original["git"], d, config)
13801387
transformed["oci"] =
@@ -1393,6 +1400,10 @@ func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncPrev
13931400
return v
13941401
}
13951402

1403+
func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncMetricsGcpServiceAccountEmail(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1404+
return v
1405+
}
1406+
13961407
func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
13971408
if v == nil {
13981409
return nil
@@ -2301,6 +2312,13 @@ func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(v in
23012312
transformed["preventDrift"] = transformedPreventDrift
23022313
}
23032314

2315+
transformedMetricsGcpServiceAccountEmail, err := expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncMetricsGcpServiceAccountEmail(original["metrics_gcp_service_account_email"], d, config)
2316+
if err != nil {
2317+
return nil, err
2318+
} else if val := reflect.ValueOf(transformedMetricsGcpServiceAccountEmail); val.IsValid() && !tpgresource.IsEmptyValue(val) {
2319+
transformed["metricsGcpServiceAccountEmail"] = transformedMetricsGcpServiceAccountEmail
2320+
}
2321+
23042322
transformedGit, err := expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(original["git"], d, config)
23052323
if err != nil {
23062324
return nil, err
@@ -2330,6 +2348,10 @@ func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncPreve
23302348
return v, nil
23312349
}
23322350

2351+
func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncMetricsGcpServiceAccountEmail(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
2352+
return v, nil
2353+
}
2354+
23332355
func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
23342356
l := v.([]interface{})
23352357
if len(l) == 0 || l[0] == nil {

Diff for: google-beta/services/gkehub2/resource_gke_hub_feature_generated_meta.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ fields:
1717
- field: 'fleet_default_member_config.configmanagement.config_sync.git.sync_repo'
1818
- field: 'fleet_default_member_config.configmanagement.config_sync.git.sync_rev'
1919
- field: 'fleet_default_member_config.configmanagement.config_sync.git.sync_wait_secs'
20+
- field: 'fleet_default_member_config.configmanagement.config_sync.metrics_gcp_service_account_email'
2021
- field: 'fleet_default_member_config.configmanagement.config_sync.oci.gcp_service_account_email'
2122
- field: 'fleet_default_member_config.configmanagement.config_sync.oci.policy_dir'
2223
- field: 'fleet_default_member_config.configmanagement.config_sync.oci.secret_type'

Diff for: google-beta/services/gkehub2/resource_gke_hub_feature_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,7 @@ resource "google_gke_hub_feature" "feature" {
579579
enabled = true
580580
prevent_drift = true
581581
source_format = "unstructured"
582+
metrics_gcp_service_account_email = "[email protected]"
582583
oci {
583584
sync_repo = "us-central1-docker.pkg.dev/corp-gke-build-artifacts/acm/configs:latest"
584585
policy_dir = "/acm/nonprod-root/"

Diff for: website/docs/r/gke_hub_feature.html.markdown

+4
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,10 @@ The following arguments are supported:
504504
(Optional)
505505
Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
506506

507+
* `metrics_gcp_service_account_email` -
508+
(Optional)
509+
The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
510+
507511
* `git` -
508512
(Optional)
509513
Git repo configuration for the cluster

0 commit comments

Comments
 (0)