Skip to content

Commit 7b38f10

Browse files
MrWolongxiaozhu36
authored andcommitted
Improves the module examples/complete
1 parent c42bde5 commit 7b38f10

File tree

29 files changed

+585
-280
lines changed

29 files changed

+585
-280
lines changed

.gitignore

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,24 @@
1-
# Local .terraform directories
2-
**/.terraform/*
3-
4-
# .tfstate files
1+
# Compiled files
52
*.tfstate
6-
*.tfstate.*
3+
*.tfstate.backup
4+
*.terraform.*
75

8-
# .tfvars files
9-
*.tfvars
10-
.idea*
6+
# Module directory
7+
.terraform/
8+
9+
# terraform log
1110
*.log
12-
*.tfstate.*
11+
12+
# auto-generated key pair file
13+
*.pem
14+
15+
# tools files
16+
.DS_Store
17+
.idea
18+
19+
# others
20+
*.bak
21+
*.bk
22+
**/.terraform/*
23+
.terraform.lock.hcl
24+
.terraform.tfstate.lock.info

README-CN.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ module "mongodb_example" {
9191

9292

9393
## 注意事项
94-
本Module从版本v1.4.0开始已经移除掉如下的 provider 的显示设置
94+
本Module从版本v1.4.0开始已经移除掉如下的 provider 的显式设置
9595

9696
```hcl
9797
provider "alicloud" {
@@ -117,7 +117,7 @@ module "mongodb" {
117117
}
118118
```
119119

120-
如果你想对正在使用中的Module升级到 1.4.0 或者更高的版本,那么你可以在模板中显示定义一个系统过Region的provider
120+
如果你想对正在使用中的Module升级到 1.4.0 或者更高的版本,那么你可以在模板中显式定义一个相同Region的provider
121121
```hcl
122122
provider "alicloud" {
123123
region = "cn-shanghai"
@@ -130,7 +130,7 @@ module "mongodb" {
130130
// ...
131131
}
132132
```
133-
或者,如果你是多Region部署,你可以利用 `alias` 定义多个 provider,并在Module中显示指定这个provider
133+
或者,如果你是多Region部署,你可以利用 `alias` 定义多个 provider,并在Module中显式指定这个provider
134134

135135
```hcl
136136
provider "alicloud" {
@@ -157,7 +157,7 @@ module "mongodb" {
157157

158158
| Name | Version |
159159
|------|---------|
160-
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.12.0 |
160+
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13.0 |
161161
| <a name="requirement_alicloud"></a> [alicloud](#requirement\_alicloud) | >= 1.56.0 |
162162

163163
作者
@@ -172,6 +172,4 @@ Apache 2 Licensed. See LICENSE for full details.
172172
---------
173173
* [Terraform-Provider-Alicloud Github](https://github.com/terraform-providers/terraform-provider-alicloud)
174174
* [Terraform-Provider-Alicloud Release](https://releases.hashicorp.com/terraform-provider-alicloud/)
175-
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)
176-
177-
175+
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ These types of resources are supported:
1515

1616

1717
## Usage
18+
1819
-----
1920

2021
For new instance
@@ -161,6 +162,13 @@ and then run `terraform init` and `terraform apply` to make the defined provider
161162

162163
More details see [How to use provider in the module](https://www.terraform.io/docs/language/modules/develop/providers.html#passing-providers-explicitly)
163164

165+
## Requirements
166+
167+
| Name | Version |
168+
|------|---------|
169+
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | > = 0.13.0 |
170+
| <a name="requirement_alicloud"></a> [alicloud](#requirement\_alicloud) | > = 1.56.0 |
171+
164172
Authors
165173
---------
166174
Created and maintained by Alibaba Cloud Terraform Team(terraform@alibabacloud.com)
@@ -173,4 +181,4 @@ Reference
173181
---------
174182
* [Terraform-Provider-Alicloud Github](https://github.com/terraform-providers/terraform-provider-alicloud)
175183
* [Terraform-Provider-Alicloud Release](https://releases.hashicorp.com/terraform-provider-alicloud/)
176-
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)
184+
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)

examples/complete/README.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Complete MongoDB example
1+
# Complete
22

3-
Configuration in this directory creates set of MongoDB resources including DB instance
3+
Configuration in this directory creates set of MongoDB resources including DB instance.
44

55
## Usage
66

@@ -14,3 +14,19 @@ $ terraform apply
1414

1515
Note that this example may create resources which cost money. Run `terraform destroy` when you don't need these resources.
1616

17+
This example provides the tf variables file in the folder `tfvars`. If you want to create or update this example,
18+
you can run this example as the following commands:
19+
```bash
20+
$ terraform plan -var-file=tfvars/01-update.tfvars
21+
$ terraform apply -var-file=tfvars/01-update.tfvars
22+
```
23+
24+
Also, you can add more variables files in the folder `tfvars`.
25+
26+
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
27+
## Requirements
28+
29+
| Name | Version |
30+
|------|---------|
31+
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | > = 0.13.0 |
32+
| <a name="requirement_alicloud"></a> [alicloud](#requirement\_alicloud) | > = 1.56.0 |

examples/complete/main.tf

Lines changed: 182 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,192 @@
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

Comments
 (0)