Fix regional resource policy attachment in compute-vm module (#3753)

* fix regional resource policy attachment in compute-vm module

* tfdoc
This commit is contained in:
Ludovico Magnocavallo
2026-02-19 11:27:04 +01:00
committed by GitHub
parent 1ba20addf6
commit e58c6dd3d1
3 changed files with 143 additions and 22 deletions

View File

@@ -1054,12 +1054,23 @@ module "instance" {
}
attached_disks = [
{
name = "disk-1"
size = 10
snapshot_schedule = ["boot"]
name = "disk-1"
size = 10
options = {
replica_zone = "${var.region}-c"
}
snapshot_schedule = ["data"]
}
]
snapshot_schedules = {
boot = {
schedule = {
hourly = {
hours_in_cycle = 1
start_time = "03:00"
}
}
}
boot = {
schedule = {
daily = {

View File

@@ -175,8 +175,8 @@ resource "google_compute_region_disk_resource_policy_attachment" "attached" {
for attachment in local.disk_regional_schedule_attachments :
"${attachment.disk_key}-${attachment.snapshot_schedule}" => attachment
}
project = local.project_id
region = local.region
name = try(
google_compute_resource_policy.snapshot[each.value.snapshot_schedule].name,
each.value.snapshot_schedule

View File

@@ -13,48 +13,158 @@
# limitations under the License.
values:
module.instance.google_compute_disk.disks["disk-1"]:
name: schedule-test-disk-1
project: project-id
size: 10
type: pd-balanced
zone: europe-west8-b
module.instance.google_compute_disk_resource_policy_attachment.attached["disk-1-boot"]:
disk: schedule-test-disk-1
name: schedule-test-boot
project: project-id
timeouts: null
zone: europe-west8-b
module.instance.google_compute_disk_resource_policy_attachment.boot["boot"]:
disk: schedule-test
name: schedule-test-boot
project: project-id
timeouts: null
zone: europe-west8-b
module.instance.google_compute_instance.default[0]:
advanced_machine_features: []
allow_stopping_for_update: true
attached_disk:
- device_name: disk-1
disk_encryption_key_raw: null
disk_encryption_key_rsa: null
disk_encryption_service_account: null
force_attach: null
mode: READ_WRITE
source: schedule-test-disk-1
boot_disk:
- initialize_params:
- image: projects/cos-cloud/global/images/family/cos-stable
- auto_delete: true
disk_encryption_key_raw: null
disk_encryption_key_rsa: null
disk_encryption_service_account: null
force_attach: null
initialize_params:
- enable_confidential_compute: null
image: projects/cos-cloud/global/images/family/cos-stable
resource_manager_tags: null
size: 10
source_image_encryption_key: []
source_snapshot_encryption_key: []
storage_pool: null
type: pd-balanced
interface: null
mode: READ_WRITE
can_ip_forward: false
deletion_protection: false
description: Managed by the compute-vm Terraform module.
desired_status: null
effective_labels:
goog-terraform-provisioned: 'true'
enable_display: false
hostname: null
instance_encryption_key: []
key_revocation_action_type: NONE
labels: null
machine_type: f1-micro
metadata: null
metadata_startup_script: null
name: schedule-test
network_interface:
- access_config: []
alias_ip_range: []
ipv6_access_config: []
network: https://www.googleapis.com/compute/v1/projects/xxx/global/networks/aaa
nic_type: null
queue_count: null
security_policy: null
subnetwork: subnet_self_link
network_performance_config: []
params: []
partner_metadata: null
project: project-id
resource_policies: null
scheduling:
- automatic_restart: true
availability_domain: null
graceful_shutdown: []
host_error_timeout_seconds: null
instance_termination_action: null
local_ssd_recovery_timeout: []
maintenance_interval: null
max_run_duration: []
min_node_cpus: null
node_affinities: []
on_host_maintenance: MIGRATE
on_instance_stop_action: []
preemptible: false
provisioning_model: STANDARD
skip_guest_os_shutdown: false
termination_time: null
scratch_disk: []
service_account:
- scopes:
- https://www.googleapis.com/auth/devstorage.read_only
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
shielded_instance_config: []
tags: null
terraform_labels:
goog-terraform-provisioned: 'true'
timeouts: null
zone: europe-west8-b
module.instance.google_compute_region_disk.disks["disk-1"]:
async_primary_disk: []
create_snapshot_before_destroy: false
create_snapshot_before_destroy_prefix: null
description: null
disk_encryption_key: []
effective_labels:
disk_name: disk-1
disk_type: pd-balanced
goog-terraform-provisioned: 'true'
interface: null
labels:
disk_name: disk-1
disk_type: pd-balanced
name: schedule-test-disk-1
project: project-id
region: europe-west8
replica_zones:
- europe-west8-b
- europe-west8-c
size: 10
snapshot: null
source_disk: null
source_snapshot_encryption_key: []
terraform_labels:
disk_name: disk-1
disk_type: pd-balanced
goog-terraform-provisioned: 'true'
timeouts: null
type: pd-balanced
module.instance.google_compute_region_disk_resource_policy_attachment.attached["disk-1-data"]:
disk: schedule-test-disk-1
name: data
project: project-id
region: europe-west8
timeouts: null
module.instance.google_compute_resource_policy.snapshot["boot"]:
description: Schedule policy boot for schedule-test.
disk_consistency_group_policy: []
group_placement_policy: []
instance_schedule_policy: []
name: schedule-test-boot
project: project-id
region: europe-west8
snapshot_schedule_policy:
- schedule:
- retention_policy: []
schedule:
- daily_schedule:
- days_in_cycle: 1
start_time: 03:00
hourly_schedule: []
weekly_schedule: []
snapshot_properties: []
timeouts: null
workload_policy: []
counts:
google_compute_disk: 1
google_compute_disk_resource_policy_attachment: 2
google_compute_disk_resource_policy_attachment: 1
google_compute_instance: 1
google_compute_region_disk: 1
google_compute_region_disk_resource_policy_attachment: 1
google_compute_resource_policy: 1
modules: 1
resources: 5