Skip to content

Commit b4db307

Browse files
committed
add auto_scaling example
1 parent 87bf0fc commit b4db307

File tree

2 files changed

+138
-0
lines changed

2 files changed

+138
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
resource "mongodbatlas_cluster" "cluster" {
2+
project_id = var.project_id
3+
name = var.cluster_name
4+
cloud_backup = var.backup_enabled
5+
pit_enabled = var.pit_enabled
6+
retain_backups_enabled = var.retain_backups_enabled
7+
auto_scaling_disk_gb_enabled = var.auto_scaling_disk_gb_enabled
8+
mongo_db_major_version = var.mongodb_version
9+
cluster_type = var.cluster_type
10+
termination_protection_enabled = var.termination_protection_enabled
11+
num_shards = var.replication_specs.num_shards
12+
paused = var.paused
13+
disk_size_gb = var.disk_size_gb
14+
provider_volume_type = var.provider_volume_type
15+
provider_disk_iops = var.provider_disk_iops
16+
redact_client_log_data = true
17+
provider_name = var.provider_name
18+
provider_instance_size_name = var.provider_instance_size_name
19+
encryption_at_rest_provider = var.encryption_at_rest_provider
20+
21+
replication_specs {
22+
num_shards = var.replication_specs.num_shards
23+
dynamic "regions_config" {
24+
for_each = var.replication_specs.regions_config
25+
content {
26+
region_name = regions_config.value.region_name
27+
electable_nodes = regions_config.value.electable_nodes
28+
priority = regions_config.value.priority
29+
read_only_nodes = regions_config.value.read_only_nodes
30+
}
31+
}
32+
}
33+
34+
advanced_configuration {
35+
oplog_size_mb = var.oplog_size_mb
36+
transaction_lifetime_limit_seconds = var.transaction_lifetime_limit_seconds
37+
minimum_enabled_tls_protocol = "TLS1_2"
38+
javascript_enabled = false
39+
tls_cipher_config_mode = "CUSTOM"
40+
custom_openssl_cipher_config_tls12 = ["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"]
41+
}
42+
43+
labels {
44+
key = "label1"
45+
value = var.label1val
46+
}
47+
dynamic "labels" {
48+
for_each = local.labels
49+
content {
50+
key = labels.key
51+
value = labels.value
52+
}
53+
}
54+
55+
tags {
56+
key = "tag1"
57+
value = var.tag1val
58+
}
59+
dynamic "tags" {
60+
for_each = local.tags
61+
content {
62+
key = tags.key
63+
value = replace(tags.value, "/", "_")
64+
}
65+
}
66+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
resource "mongodbatlas_advanced_cluster" "cluster" {
2+
project_id = var.project_id
3+
name = var.cluster_name
4+
pit_enabled = var.pit_enabled
5+
retain_backups_enabled = var.retain_backups_enabled
6+
mongo_db_major_version = var.mongodb_version
7+
cluster_type = var.cluster_type
8+
termination_protection_enabled = var.termination_protection_enabled
9+
paused = var.paused
10+
redact_client_log_data = true
11+
encryption_at_rest_provider = var.encryption_at_rest_provider
12+
13+
14+
15+
16+
backup_enabled = var.backup_enabled
17+
replication_specs = [
18+
for i in range(var.replication_specs.num_shards) : {
19+
region_configs = flatten([
20+
for priority in range(7, 0, -1) : [
21+
for region in var.replication_specs.regions_config : {
22+
provider_name = var.provider_name
23+
region_name = region.region_name
24+
priority = region.priority
25+
electable_specs = region.electable_nodes > 0 ? {
26+
node_count = region.electable_nodes
27+
instance_size = var.provider_instance_size_name
28+
disk_size_gb = var.disk_size_gb
29+
ebs_volume_type = var.provider_volume_type
30+
disk_iops = var.provider_disk_iops
31+
} : null
32+
read_only_specs = region.read_only_nodes > 0 ? {
33+
node_count = region.read_only_nodes
34+
instance_size = var.provider_instance_size_name
35+
disk_size_gb = var.disk_size_gb
36+
ebs_volume_type = var.provider_volume_type
37+
disk_iops = var.provider_disk_iops
38+
} : null
39+
auto_scaling = {
40+
disk_gb_enabled = var.auto_scaling_disk_gb_enabled
41+
}
42+
} if region.priority == priority
43+
]
44+
])
45+
}
46+
]
47+
tags = merge(
48+
{
49+
for key, value in local.tags : key => replace(value, "/", "_")
50+
},
51+
{
52+
tag1 = var.tag1val
53+
}
54+
)
55+
labels = merge(
56+
local.labels,
57+
{
58+
label1 = var.label1val
59+
}
60+
)
61+
advanced_configuration = {
62+
oplog_size_mb = var.oplog_size_mb
63+
transaction_lifetime_limit_seconds = var.transaction_lifetime_limit_seconds
64+
minimum_enabled_tls_protocol = "TLS1_2"
65+
javascript_enabled = false
66+
tls_cipher_config_mode = "CUSTOM"
67+
custom_openssl_cipher_config_tls12 = ["TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"]
68+
}
69+
70+
# Generated by atlas-cli-plugin-terraform.
71+
# Please review the changes and confirm that references to this resource are updated.
72+
}

0 commit comments

Comments
 (0)