From 3a9717d06eaefc388f33f614df8d907eb29838d7 Mon Sep 17 00:00:00 2001 From: chayan kumar ray Date: Wed, 22 Oct 2025 15:35:20 +0000 Subject: [PATCH 1/3] feat(compute): add terraform sample for cross-zone repair functionality of rmig --- compute/rmig_cross_zone_repair/main.tf | 81 ++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 compute/rmig_cross_zone_repair/main.tf diff --git a/compute/rmig_cross_zone_repair/main.tf b/compute/rmig_cross_zone_repair/main.tf new file mode 100644 index 000000000..b6d1cbd91 --- /dev/null +++ b/compute/rmig_cross_zone_repair/main.tf @@ -0,0 +1,81 @@ +/** +* Copyright 2024 Google LLC +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** +* Made to resemble: +* gcloud beta compute instance-groups managed create czr-rmig \ +* --region us-central1 \ +* --size 3 \ +* --template example-template \ +* --target-distribution-shape balanced \ +* --instance-redistribution-type none \ +* --default-action-on-vm-failure=repair \ +* --on-repair-allow-changing-zone=YES \ +* --force-update-on-repair +*/ + +terraform { + required_providers { + google = { + source = "hashicorp/google-beta" + version = ">= 7.8.0" + } + } +} + +# [START compute_rmig_cross_zone_repair_parent_tag] +resource "google_compute_instance_template" "default" { + name = "example-template" + machine_type = "n2-standard-2" + disk { + source_image = "debian-cloud/debian-12" + } + network_interface { + network = "default" + } +} + +# [START compute_rmig_cross_zone_repair] +resource "google_compute_region_instance_group_manager" "default" { + name = "czr-rmig" + base_instance_name = "tf-test-czr-rmig" + region = "us-central1" + + target_size = 3 + distribution_policy_target_shape = "BALANCED" + + version { + instance_template = google_compute_instance_template.default.id + } + + instance_lifecycle_policy { + default_action_on_failure = "REPAIR" + force_update_on_repair = "YES" + on_repair { + allow_changing_zone = "YES" + } + } + + update_policy { + instance_redistribution_type = "NONE" + type = "OPPORTUNISTIC" + minimal_action = "REPLACE" + max_surge_fixed = 0 + max_unavailable_fixed = 6 + } +} +# [END compute_rmig_cross_zone_repair] +# [END compute_rmig_cross_zone_repair_parent_tag] From 9b595fb53ac8a896d357225b03d4dc4d1663a99c Mon Sep 17 00:00:00 2001 From: chayan kumar ray Date: Wed, 22 Oct 2025 15:35:20 +0000 Subject: [PATCH 2/3] feat(compute): add terraform sample for cross-zone repair functionality of rmig --- compute/rmig_cross_zone_repair/main.tf | 35 +++++++++++++------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/compute/rmig_cross_zone_repair/main.tf b/compute/rmig_cross_zone_repair/main.tf index b6d1cbd91..f661bb8b7 100644 --- a/compute/rmig_cross_zone_repair/main.tf +++ b/compute/rmig_cross_zone_repair/main.tf @@ -1,18 +1,18 @@ /** -* Copyright 2024 Google LLC -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ /** * Made to resemble: @@ -50,8 +50,9 @@ resource "google_compute_instance_template" "default" { # [START compute_rmig_cross_zone_repair] resource "google_compute_region_instance_group_manager" "default" { - name = "czr-rmig" - base_instance_name = "tf-test-czr-rmig" + provider = google-beta + name = "example-rmig" + base_instance_name = "example-rmig-instance" region = "us-central1" target_size = 3 @@ -65,7 +66,7 @@ resource "google_compute_region_instance_group_manager" "default" { default_action_on_failure = "REPAIR" force_update_on_repair = "YES" on_repair { - allow_changing_zone = "YES" + allow_changing_zone = "YES" } } From 7a9e89b231dc6ab5bf4c89025de9ef32e8da5985 Mon Sep 17 00:00:00 2001 From: Katie McLaughlin Date: Wed, 29 Oct 2025 17:11:14 +1100 Subject: [PATCH 3/3] relocate parent tag to surround all the terraform code --- compute/rmig_cross_zone_repair/main.tf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/compute/rmig_cross_zone_repair/main.tf b/compute/rmig_cross_zone_repair/main.tf index f661bb8b7..b49386550 100644 --- a/compute/rmig_cross_zone_repair/main.tf +++ b/compute/rmig_cross_zone_repair/main.tf @@ -26,7 +26,7 @@ * --on-repair-allow-changing-zone=YES \ * --force-update-on-repair */ - +# [START compute_rmig_cross_zone_repair_parent_tag] terraform { required_providers { google = { @@ -36,7 +36,6 @@ terraform { } } -# [START compute_rmig_cross_zone_repair_parent_tag] resource "google_compute_instance_template" "default" { name = "example-template" machine_type = "n2-standard-2"