1- variable "region" {
2- default = " cn-shanghai"
1+ data "alicloud_mongodb_zones" "default" {
32}
4- provider "alicloud" {
5- region = var. region
3+
4+ data "alicloud_cms_alarm_contact_groups" "default" {
5+ }
6+
7+ module "vpc" {
8+ source = " alibaba/vpc/alicloud"
9+ create = true
10+ vpc_name = var. name
11+ vpc_cidr = " 172.16.0.0/16"
12+ vswitch_name = var. name
13+ vswitch_cidrs = [" 172.16.0.0/21" ]
14+ availability_zones = [data . alicloud_mongodb_zones . default . zones . 0 . id ]
15+ }
16+
17+ module "mongodb_example" {
18+ source = " ../../"
19+
20+ # Mongodb Instance
21+ create = true
22+
23+ name = var. name
24+ engine_version = " 4.0"
25+ instance_charge_type = var. instance_charge_type
26+ db_instance_class = var. db_instance_class
27+ db_instance_storage = var. db_instance_storage
28+ period = var. period
29+ security_ip_list = var. security_ip_list
30+ replication_factor = var. replication_factor
31+ storage_engine = " WiredTiger"
32+ vswitch_id = module. vpc . this_vswitch_ids [0 ]
33+ zone_id = data. alicloud_mongodb_zones . default . zones . 0 . id
34+ account_password = var. account_password
35+ backup_period = var. backup_period
36+ backup_time = var. backup_time
37+ tags = var. tags
38+
39+ # cms_alarm
40+ enable_alarm_rule = false
41+
642}
7- locals {
8- engine_version = " 3.4"
9- storage_engine = " RocksDB"
43+
44+ module "use_existing_mongodb" {
45+ source = " ../../"
46+
47+ # Mongodb Instance
48+ create = false
49+
50+ # cms_alarm
51+ enable_alarm_rule = var. enable_alarm_rule
52+
53+ alarm_rule_name = var. alarm_rule_name
54+ existing_instance_id = module. mongodb_example . this_mongodb_instance_id
55+ alarm_rule_statistics = var. alarm_rule_statistics
56+ alarm_rule_operator = var. alarm_rule_operator
57+ alarm_rule_threshold = var. alarm_rule_threshold
58+ alarm_rule_triggered_count = var. alarm_rule_triggered_count
59+ alarm_rule_period = var. alarm_rule_period
60+ alarm_rule_contact_groups = data. alicloud_cms_alarm_contact_groups . default . names
61+ alarm_rule_silence_time = var. alarm_rule_silence_time
62+ alarm_rule_effective_interval = var. alarm_rule_effective_interval
63+
1064}
11- data "alicloud_vpcs" "default" {
12- is_default = true
65+
66+ module "mongodb_3_4_rocksdb" {
67+ source = " ../../modules/mongodb-3.4-rocksdb"
68+
69+ # Mongodb Instance
70+ name = var. name
71+ instance_charge_type = var. instance_charge_type
72+ db_instance_class = var. db_instance_class
73+ db_instance_storage = var. db_instance_storage
74+ period = var. period
75+ security_ip_list = var. security_ip_list
76+ replication_factor = var. replication_factor
77+ vswitch_id = module. vpc . this_vswitch_ids [0 ]
78+ zone_id = data. alicloud_mongodb_zones . default . zones . 0 . id
79+ account_password = var. account_password
80+ backup_period = var. backup_period
81+ backup_time = var. backup_time
82+ tags = var. tags
83+
84+ # cms_alarm
85+ enable_alarm_rule = var. enable_alarm_rule
86+ alarm_rule_name = var. alarm_rule_name
87+ alarm_rule_statistics = var. alarm_rule_statistics
88+ alarm_rule_operator = var. alarm_rule_operator
89+ alarm_rule_threshold = var. alarm_rule_threshold
90+ alarm_rule_triggered_count = var. alarm_rule_triggered_count
91+ alarm_rule_period = var. alarm_rule_period
92+ alarm_rule_contact_groups = data. alicloud_cms_alarm_contact_groups . default . names
93+ alarm_rule_silence_time = var. alarm_rule_silence_time
94+ alarm_rule_effective_interval = var. alarm_rule_effective_interval
95+
1396}
14- data "alicloud_zones" "default" {
15- available_resource_creation = " MongoDB"
16- multi = true
97+
98+ module "mongodb_3_4_wiredtiger" {
99+ source = " ../../modules/mongodb-3.4-wiredtiger"
100+
101+ # Mongodb Instance
102+ name = var. name
103+ instance_charge_type = var. instance_charge_type
104+ db_instance_class = var. db_instance_class
105+ db_instance_storage = var. db_instance_storage
106+ period = var. period
107+ security_ip_list = var. security_ip_list
108+ replication_factor = var. replication_factor
109+ vswitch_id = module. vpc . this_vswitch_ids [0 ]
110+ zone_id = data. alicloud_mongodb_zones . default . zones . 0 . id
111+ account_password = var. account_password
112+ backup_period = var. backup_period
113+ backup_time = var. backup_time
114+ tags = var. tags
115+
116+ # cms_alarm
117+ enable_alarm_rule = var. enable_alarm_rule
118+ alarm_rule_name = var. alarm_rule_name
119+ alarm_rule_statistics = var. alarm_rule_statistics
120+ alarm_rule_operator = var. alarm_rule_operator
121+ alarm_rule_threshold = var. alarm_rule_threshold
122+ alarm_rule_triggered_count = var. alarm_rule_triggered_count
123+ alarm_rule_period = var. alarm_rule_period
124+ alarm_rule_contact_groups = data. alicloud_cms_alarm_contact_groups . default . names
125+ alarm_rule_silence_time = var. alarm_rule_silence_time
126+ alarm_rule_effective_interval = var. alarm_rule_effective_interval
127+
17128}
18- resource "alicloud_vswitch" "this" {
19- name = " mongodb_vpc"
20- availability_zone = data. alicloud_zones . default . zones . 0 . multi_zone_ids . 0
21- vpc_id = data. alicloud_vpcs . default . vpcs . 0 . id
22- cidr_block = cidrsubnet (data. alicloud_vpcs . default . vpcs . 0 . cidr_block , 5 , 4 )
129+
130+ module "mongodb_4_0_wiredtiger" {
131+ source = " ../../modules/mongodb-4.0-wiredtiger"
132+
133+ # Mongodb Instance
134+ name = var. name
135+ instance_charge_type = var. instance_charge_type
136+ db_instance_class = var. db_instance_class
137+ db_instance_storage = var. db_instance_storage
138+ period = var. period
139+ security_ip_list = var. security_ip_list
140+ replication_factor = var. replication_factor
141+ vswitch_id = module. vpc . this_vswitch_ids [0 ]
142+ zone_id = data. alicloud_mongodb_zones . default . zones . 0 . id
143+ account_password = var. account_password
144+ backup_period = var. backup_period
145+ backup_time = var. backup_time
146+ tags = var. tags
147+
148+ # cms_alarm
149+ enable_alarm_rule = var. enable_alarm_rule
150+ alarm_rule_name = var. alarm_rule_name
151+ alarm_rule_statistics = var. alarm_rule_statistics
152+ alarm_rule_operator = var. alarm_rule_operator
153+ alarm_rule_threshold = var. alarm_rule_threshold
154+ alarm_rule_triggered_count = var. alarm_rule_triggered_count
155+ alarm_rule_period = var. alarm_rule_period
156+ alarm_rule_contact_groups = data. alicloud_cms_alarm_contact_groups . default . names
157+ alarm_rule_silence_time = var. alarm_rule_silence_time
158+ alarm_rule_effective_interval = var. alarm_rule_effective_interval
159+
23160}
24- module "mongodb_example" {
25- source = " ../../"
26- region = var. region
27161
28- # ###################
162+ module "mongodb_4_2_wiredtiger" {
163+ source = " ../../modules/mongodb-4.2-wiredtiger"
164+
29165 # Mongodb Instance
30- # ###################
31- engine_version = local. engine_version
32- storage_engine = local. storage_engine
33- replication_factor = 3
34- name = " my-mongo"
35- instance_charge_type = " PostPaid"
36- db_instance_class = " dds.mongo.mid"
37- db_instance_storage = 10
38- period = 1
39- security_ip_list = [" 1.1.1.1" , " 2.2.2.2" , " 3.3.3.3" ]
40- vswitch_id = alicloud_vswitch. this . id
41- zone_id = data. alicloud_zones . default . zones . 0 . multi_zone_ids . 0
42- account_password = " mongo123"
43- backup_period = [" Monday" , " Wednesday" , " Friday" ]
44- backup_time = " 02:00Z-03:00Z"
45- tags = {
46- Env = " Private"
47- Location = " Secret"
48- }
49-
50- # ############
166+ name = var. name
167+ instance_charge_type = var. instance_charge_type
168+ db_instance_class = var. db_instance_class
169+ db_instance_storage = var. db_instance_storage
170+ period = var. period
171+ security_ip_list = var. security_ip_list
172+ replication_factor = var. replication_factor
173+ vswitch_id = module. vpc . this_vswitch_ids [0 ]
174+ zone_id = data. alicloud_mongodb_zones . default . zones . 0 . id
175+ account_password = var. account_password
176+ backup_period = var. backup_period
177+ backup_time = var. backup_time
178+ tags = var. tags
179+
51180 # cms_alarm
52- # ############
53- alarm_rule_name = " CmsAlarmForMongodb"
54- alarm_rule_statistics = " Average"
55- alarm_rule_period = 300
56- alarm_rule_operator = " <="
57- alarm_rule_threshold = 35
58- alarm_rule_triggered_count = 2
59- alarm_rule_contact_groups = [" Mongodb" , " AccCms" ]
181+ enable_alarm_rule = var. enable_alarm_rule
182+ alarm_rule_name = var. alarm_rule_name
183+ alarm_rule_statistics = var. alarm_rule_statistics
184+ alarm_rule_operator = var. alarm_rule_operator
185+ alarm_rule_threshold = var. alarm_rule_threshold
186+ alarm_rule_triggered_count = var. alarm_rule_triggered_count
187+ alarm_rule_period = var. alarm_rule_period
188+ alarm_rule_contact_groups = data. alicloud_cms_alarm_contact_groups . default . names
189+ alarm_rule_silence_time = var. alarm_rule_silence_time
190+ alarm_rule_effective_interval = var. alarm_rule_effective_interval
191+
60192}
0 commit comments