Skip to content

Commit a8f7e8f

Browse files
Add support for preventDrift field in ConfigManagement Fleet-level default config (#10809) (#18330)
[upstream:cc013404d5b6ccce53491e1d3e807df55855846b] Signed-off-by: Modular Magician <[email protected]>
1 parent ba35bd1 commit a8f7e8f

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

google/services/gkehub2/resource_gke_hub_feature.go

+22
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,11 @@ func ResourceGKEHub2Feature() *schema.Resource {
174174
},
175175
},
176176
},
177+
"prevent_drift": {
178+
Type: schema.TypeBool,
179+
Optional: true,
180+
Description: `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.`,
181+
},
177182
"source_format": {
178183
Type: schema.TypeString,
179184
Optional: true,
@@ -1349,6 +1354,8 @@ func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(v i
13491354
transformed := make(map[string]interface{})
13501355
transformed["source_format"] =
13511356
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncSourceFormat(original["sourceFormat"], d, config)
1357+
transformed["prevent_drift"] =
1358+
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncPreventDrift(original["preventDrift"], d, config)
13521359
transformed["git"] =
13531360
flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(original["git"], d, config)
13541361
transformed["oci"] =
@@ -1359,6 +1366,10 @@ func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncSour
13591366
return v
13601367
}
13611368

1369+
func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncPreventDrift(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
1370+
return v
1371+
}
1372+
13621373
func flattenGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(v interface{}, d *schema.ResourceData, config *transport_tpg.Config) interface{} {
13631374
if v == nil {
13641375
return nil
@@ -2242,6 +2253,13 @@ func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSync(v in
22422253
transformed["sourceFormat"] = transformedSourceFormat
22432254
}
22442255

2256+
transformedPreventDrift, err := expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncPreventDrift(original["prevent_drift"], d, config)
2257+
if err != nil {
2258+
return nil, err
2259+
} else if val := reflect.ValueOf(transformedPreventDrift); val.IsValid() && !tpgresource.IsEmptyValue(val) {
2260+
transformed["preventDrift"] = transformedPreventDrift
2261+
}
2262+
22452263
transformedGit, err := expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(original["git"], d, config)
22462264
if err != nil {
22472265
return nil, err
@@ -2263,6 +2281,10 @@ func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncSourc
22632281
return v, nil
22642282
}
22652283

2284+
func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncPreventDrift(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
2285+
return v, nil
2286+
}
2287+
22662288
func expandGKEHub2FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGit(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
22672289
l := v.([]interface{})
22682290
if len(l) == 0 || l[0] == nil {

google/services/gkehub2/resource_gke_hub_feature_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,8 @@ resource "google_gke_hub_feature" "feature" {
430430
fleet_default_member_config {
431431
configmanagement {
432432
version = "1.16.1"
433-
config_sync {
433+
config_sync {
434+
prevent_drift = true
434435
source_format = "unstructured"
435436
oci {
436437
sync_repo = "us-central1-docker.pkg.dev/corp-gke-build-artifacts/acm/configs:latest"

website/docs/r/gke_hub_feature.html.markdown

+4
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,10 @@ The following arguments are supported:
492492
(Optional)
493493
Specifies whether the Config Sync Repo is in hierarchical or unstructured mode
494494

495+
* `prevent_drift` -
496+
(Optional)
497+
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.
498+
495499
* `git` -
496500
(Optional)
497501
Git repo configuration for the cluster

0 commit comments

Comments
 (0)