|
| 1 | +locals { |
| 2 | + atlas_clusters = { |
| 3 | + "cluster_1" = { name = "m10-aws-1e", region = "US_EAST_1" }, |
| 4 | + "cluster_2" = { name = "m10-aws-2e", region = "US_EAST_2" }, |
| 5 | + "cluster_3" = { name = "m10-aws-3w", region = "US_WEST_1" } |
| 6 | + } |
| 7 | +} |
| 8 | + |
| 9 | +resource "mongodbatlas_project" "atlas-project" { |
| 10 | + org_id = var.org_id |
| 11 | + name = var.project_name |
| 12 | +} |
| 13 | + |
| 14 | +resource "mongodbatlas_advanced_cluster" "automated_backup_test_cluster" { |
| 15 | + for_each = local.atlas_clusters |
| 16 | + project_id = mongodbatlas_project.atlas-project.id |
| 17 | + name = each.value.name |
| 18 | + cluster_type = "REPLICASET" |
| 19 | + |
| 20 | + replication_specs { |
| 21 | + num_shards = 1 |
| 22 | + |
| 23 | + region_configs { |
| 24 | + electable_specs { |
| 25 | + instance_size = "M10" |
| 26 | + node_count = 3 |
| 27 | + } |
| 28 | + analytics_specs { |
| 29 | + instance_size = "M10" |
| 30 | + node_count = 1 |
| 31 | + } |
| 32 | + |
| 33 | + provider_name = "AWS" |
| 34 | + region_name = each.value.region |
| 35 | + priority = 7 |
| 36 | + } |
| 37 | + } |
| 38 | + |
| 39 | + backup_enabled = true # enable cloud backup snapshots |
| 40 | +} |
| 41 | + |
| 42 | +resource "mongodbatlas_cloud_backup_schedule" "test" { |
| 43 | + for_each = local.atlas_clusters |
| 44 | + project_id = mongodbatlas_project.atlas-project.id |
| 45 | + cluster_name = mongodbatlas_advanced_cluster.automated_backup_test_cluster[each.key].name |
| 46 | + |
| 47 | + reference_hour_of_day = 3 |
| 48 | + reference_minute_of_hour = 45 |
| 49 | + restore_window_days = 4 |
| 50 | + |
| 51 | + policy_item_hourly { |
| 52 | + frequency_interval = 1 #accepted values = 1, 2, 4, 6, 8, 12 -> every n hours |
| 53 | + retention_unit = "days" |
| 54 | + retention_value = 1 |
| 55 | + } |
| 56 | + policy_item_daily { |
| 57 | + frequency_interval = 1 #accepted values = 1 -> every 1 day |
| 58 | + retention_unit = "days" |
| 59 | + retention_value = 2 |
| 60 | + } |
| 61 | + policy_item_weekly { |
| 62 | + frequency_interval = 4 # accepted values = 1 to 7 -> every 1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=Friday,6=Saturday,7=Sunday day of the week |
| 63 | + retention_unit = "weeks" |
| 64 | + retention_value = 3 |
| 65 | + } |
| 66 | + policy_item_monthly { |
| 67 | + frequency_interval = 5 # accepted values = 1 to 28 -> 1 to 28 every nth day of the month |
| 68 | + # accepted values = 40 -> every last day of the month |
| 69 | + retention_unit = "months" |
| 70 | + retention_value = 4 |
| 71 | + } |
| 72 | + |
| 73 | + depends_on = [ |
| 74 | + mongodbatlas_advanced_cluster.automated_backup_test_cluster |
| 75 | + ] |
| 76 | +} |
0 commit comments