Skip to content

Commit a9c7906

Browse files
Rich-yixiaozhu36
authored andcommitted
Add alicloud_cms_alarm resource for redis instance,Create a new example to distinguish existing instance
1 parent 186896d commit a9c7906

File tree

72 files changed

+4355
-98
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+4355
-98
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,5 @@ override.tf.json
4040

4141
# others
4242
*.bak
43-
*.bk
43+
*.bk
44+
*.terraform*

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## 1.1.0 (Unreleased)
22

3+
IMPROVEMENTS:
4+
5+
- Add alicloud_cms_alarm resource for redis instance,Create a new example to distinguish existing instance [GH-11](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/pull/11)
6+
37
## 1.0.1 (January 10, 2020)
48

59
IMPROVEMENTS:

README-CN.md

Lines changed: 84 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,36 @@ terraform-alicloud-redis
33
=====================================================================
44

55

6-
本 Module 用于在阿里云的 VPC 下创建一个[Redis云数据库](https://help.aliyun.com/document_detail/26342.html).
6+
本 Module 用于在阿里云的 VPC 下创建一个[Redis云数据库](https://help.aliyun.com/document_detail/26342.html)
77

88
本 Module 支持创建以下资源:
99

10-
* [Redis 数据库实例 (redis_instance)](https://www.terraform.io/docs/providers/alicloud/d/kvstore_instances.html)
10+
* [Redis 数据库实例 (redis_instance)](https://www.terraform.io/docs/providers/alicloud/r/kvstore_instances.html)
1111
* [Redis 数据库实例的备份策略 (redis_backup_policy)](https://www.terraform.io/docs/providers/alicloud/r/kvstore_backup_policy.html)
1212
* [Redis 数据库的账号 (redis_account)](https://www.terraform.io/docs/providers/alicloud/r/kvstore_account.html)
13+
* [CmsAlarm 云监控实例 (cms_alarm)](https://www.terraform.io/docs/providers/alicloud/r/cms_alarm.html)
1314

1415
## Terraform 版本
1516

16-
本模板要求使用版本 Terraform 0.12。
17+
本模板要求使用版本 Terraform 0.12 和阿里云 Provider 1.56.0+
1718

1819
## 用法
20+
21+
#### 创建新的Rds实例(注意:4.0以上版本支持创建用户)
1922

2023
```hcl
21-
module "redis_example" {
22-
source = "terraform-alicloud-modules/redis/alicloud/"
24+
module "redis" {
25+
source = "terraform-alicloud-modules/redis/alicloud"
26+
region = "cn-beijing"
2327
#################
2428
# Redis Instance
2529
#################
2630
engine = "Redis"
2731
engine_version = "5.0"
28-
region = "cn-beijing"
2932
instance_name = "myInstance"
3033
instance_class = "redis.master.mid.default"
3134
period = 1
32-
vswitch_id = "vsw-bp1tili2uxxxxx"
35+
vswitch_id = "vsw-bp1tili2xxxxx"
3336
security_ips = ["1.1.1.1", "2.2.2.2", "3.3.3.3"]
3437
availability_zone = "cn-beijing-f"
3538
security_ips = ["1.1.1.1", "2.2.2.2", "3.3.3.3"]
@@ -56,15 +59,86 @@ module "redis_example" {
5659
},
5760
]
5861
59-
#####################
62+
#################
6063
# Redis backup_policy
61-
#####################
64+
#################
6265
6366
backup_policy_backup_time = "02:00Z-03:00Z"
6467
backup_policy_backup_period = ["Monday", "Wednesday", "Friday"]
68+
69+
#############
70+
# cms_alarm
71+
#############
72+
73+
alarm_rule_name = "CmsAlarmForRedis"
74+
alarm_rule_statistics = "Average"
75+
alarm_rule_period = 300
76+
alarm_rule_operator = "<="
77+
alarm_rule_threshold = 35
78+
alarm_rule_triggered_count = 2
79+
alarm_rule_contact_groups = ["AccCms"]
6580
}
6681
```
6782

83+
### 使用已经存在的Rds实例(注意:4.0以上版本支持创建用户)
84+
85+
```hcl
86+
module "redis" {
87+
source = "terraform-alicloud-modules/redis/alicloud"
88+
region = "cn-beijing"
89+
#################
90+
# Redis Instance
91+
#################
92+
93+
existing_instance_id = "r-2zea81b836xxxxx"
94+
95+
#################
96+
# Redis Accounts
97+
#################
98+
99+
create_account = true
100+
accounts = [
101+
{
102+
account_name = "user1"
103+
account_password = "plan111111"
104+
account_privilege = "RoleReadOnly"
105+
account_type = "Normal"
106+
},
107+
{
108+
account_name = "user2"
109+
account_password = "plan222222"
110+
},
111+
]
112+
113+
#################
114+
# Redis backup_policy
115+
#################
116+
117+
backup_policy_backup_time = "02:00Z-03:00Z"
118+
backup_policy_backup_period = ["Monday", "Wednesday", "Friday"]
119+
120+
#############
121+
# cms_alarm
122+
#############
123+
124+
alarm_rule_name = "CmsAlarmForRedis"
125+
alarm_rule_statistics = "Average"
126+
alarm_rule_period = 300
127+
alarm_rule_operator = "<="
128+
alarm_rule_threshold = 35
129+
alarm_rule_triggered_count = 2
130+
alarm_rule_contact_groups = ["AccCms"]
131+
}
132+
```
133+
134+
## 示例
135+
136+
* [创建 Redis 完整示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/complete)
137+
* [使用已经存在的 Redis 实例创建示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-existing-redis-instance)
138+
* [Redis 2.8 创建示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-submodule-complete-redis-2.8)
139+
* [Redis 4.0 创建示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-submodule-complete-redis-4.0)
140+
* [Redis 5.0 创建示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-submodule-complete-redis-5.0)
141+
68142
## 模板
69143

70144
本 Module 提供了丰富多样的模板用于创建不同版本和规格的 Redis 资源,以满足不同的使用场景,如:
@@ -77,15 +151,9 @@ module "redis_example" {
77151

78152
更多模板详见 [Modules](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/modules).
79153

80-
## 示例
81-
82-
* [Redis 5.0 创建示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/redis-5.0)
83-
* [Redis 4.0 创建示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/redis-4.0)
84-
* [Redis 2.8 创建示例](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/redis-2.8)
85-
86154
## 注意事项
87155

88-
* 本 Module 使用的 AccessKey 和 SecretKey 可以直接从 `profile``shared_credentials_file` 中获取。如果未设置,可通过下载安装 [aliyun-cli](https://github.com/aliyun/aliyun-cli#installation) 后进行配置.
156+
* 本 Module 使用的 AccessKey 和 SecretKey 可以直接从 `profile``shared_credentials_file` 中获取。如果未设置,可通过下载安装 [aliyun-cli](https://github.com/aliyun/aliyun-cli#installation) 后进行配置
89157

90158
作者
91159
-------

README.md

Lines changed: 80 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,30 @@ Terraform module which creates Redis instance and other resources on Alibaba Clo
88

99
These types of resources are supported:
1010

11-
* [alicloud_kvstore_instance](https://www.terraform.io/docs/providers/alicloud/d/kvstore_instances.html)
11+
* [alicloud_kvstore_instance](https://www.terraform.io/docs/providers/alicloud/r/kvstore_instances.html)
1212
* [alicloud_kvstore_backup_policy](https://www.terraform.io/docs/providers/alicloud/r/kvstore_backup_policy.html)
1313
* [alicloud_kvstore_account](https://www.terraform.io/docs/providers/alicloud/r/kvstore_account.html)
14+
* [Alicloud_cms_alarm](https://www.terraform.io/docs/providers/alicloud/r/cms_alarm.html)
1415

1516
## Terraform versions
1617

17-
This module requires Terraform 0.12.
18+
This module requires Terraform 0.12 and Terraform Provider Alicloud 1.56.0+.
1819

1920
Usage
2021
-----
2122

23+
For new instance
24+
Be careful:Create Account supports redis instances of version 4.0 or above.
25+
2226
```hcl
2327
module "redis" {
2428
source = "terraform-alicloud-modules/redis/alicloud"
29+
region = "cn-beijing"
2530
#################
2631
# Redis Instance
2732
#################
2833
engine = "Redis"
2934
engine_version = "5.0"
30-
region = "cn-beijing"
3135
instance_name = "myInstance"
3236
instance_class = "redis.master.mid.default"
3337
period = 1
@@ -64,8 +68,81 @@ module "redis" {
6468
6569
backup_policy_backup_time = "02:00Z-03:00Z"
6670
backup_policy_backup_period = ["Monday", "Wednesday", "Friday"]
71+
72+
#############
73+
# cms_alarm
74+
#############
75+
76+
alarm_rule_name = "CmsAlarmForRedis"
77+
alarm_rule_statistics = "Average"
78+
alarm_rule_period = 300
79+
alarm_rule_operator = "<="
80+
alarm_rule_threshold = 35
81+
alarm_rule_triggered_count = 2
82+
alarm_rule_contact_groups = ["AccCms"]
83+
}
84+
```
85+
86+
For existing instance
87+
Be careful:Create Account supports redis instances of version 4.0 or above.
88+
89+
```hcl
90+
module "redis" {
91+
source = "terraform-alicloud-modules/redis/alicloud"
92+
region = "cn-beijing"
93+
#################
94+
# Redis Instance
95+
#################
96+
97+
existing_instance_id = "r-2zea81b836xxxxx"
98+
99+
#################
100+
# Redis Accounts
101+
#################
102+
103+
create_account = true
104+
accounts = [
105+
{
106+
account_name = "user1"
107+
account_password = "plan111111"
108+
account_privilege = "RoleReadOnly"
109+
account_type = "Normal"
110+
},
111+
{
112+
account_name = "user2"
113+
account_password = "plan222222"
114+
},
115+
]
116+
117+
#################
118+
# Redis backup_policy
119+
#################
120+
121+
backup_policy_backup_time = "02:00Z-03:00Z"
122+
backup_policy_backup_period = ["Monday", "Wednesday", "Friday"]
123+
124+
#############
125+
# cms_alarm
126+
#############
127+
128+
alarm_rule_name = "CmsAlarmForRedis"
129+
alarm_rule_statistics = "Average"
130+
alarm_rule_period = 300
131+
alarm_rule_operator = "<="
132+
alarm_rule_threshold = 35
133+
alarm_rule_triggered_count = 2
134+
alarm_rule_contact_groups = ["AccCms"]
67135
}
68136
```
137+
138+
## Examples
139+
140+
* [complete](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/complete)
141+
* [using-existing-redis-instance](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-existing-redis-instance)
142+
* [using-submodule-complete-redis-2.8](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-submodule-complete-redis-2.8)
143+
* [using-submodule-complete-redis-4.0](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-submodule-complete-redis-4.0)
144+
* [using-submodule-complete-redis-5.0](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/using-submodule-complete-redis-5.0)
145+
69146
## Modules
70147

71148
This module provides rich sub-modules to support different Redis version and usage scenario, like:
@@ -78,12 +155,6 @@ This module provides rich sub-modules to support different Redis version and usa
78155

79156
See [more modules](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/modules).
80157

81-
## Examples
82-
83-
* [Example of a Redis 5.0](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/redis-5.0)
84-
* [Example of a Redis 4.0](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/redis-4.0)
85-
* [Example of a Redis 2.8](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/examples/redis-2.8)
86-
87158
## Notes
88159

89160
* This module using AccessKey and SecretKey are from `profile` and `shared_credentials_file`.
File renamed without changes.

examples/complete/main.tf

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
variable "region" {
2+
default = "cn-beijing"
3+
}
4+
provider "alicloud" {
5+
region = var.region
6+
}
7+
locals {
8+
engine = "Redis"
9+
engine_version = "4.0"
10+
edition_type = "Community"
11+
architecture = "cluster"
12+
}
13+
data "alicloud_vpcs" "default" {
14+
is_default = true
15+
}
16+
data "alicloud_zones" "default" {
17+
available_resource_creation = "KVStore"
18+
multi = true
19+
enable_details = true
20+
}
21+
data "alicloud_kvstore_instance_classes" "default" {
22+
zone_id = data.alicloud_zones.default.zones.0.multi_zone_ids.0
23+
engine = local.engine
24+
engine_version = local.engine_version
25+
architecture = local.architecture
26+
}
27+
resource "alicloud_vswitch" "this" {
28+
name = "redis_vpc"
29+
availability_zone = data.alicloud_zones.default.zones.0.multi_zone_ids.0
30+
vpc_id = data.alicloud_vpcs.default.vpcs.0.id
31+
cidr_block = cidrsubnet(data.alicloud_vpcs.default.vpcs.0.cidr_block, 4, 10)
32+
}
33+
module "redis_example" {
34+
source = "../../"
35+
region = var.region
36+
37+
#################
38+
# Redis Instance
39+
#################
40+
41+
engine_version = local.engine_version
42+
instance_name = "myInstance"
43+
instance_class = "redis.logic.sharding.2g.8db.0rodb.8proxy.default"
44+
period = 1
45+
availability_zone = data.alicloud_zones.default.zones.0.multi_zone_ids.0
46+
vswitch_id = alicloud_vswitch.this.id
47+
security_ips = ["1.1.1.1", "2.2.2.2", "3.3.3.3"]
48+
tags = {
49+
Env = "Private"
50+
Location = "Secret"
51+
}
52+
53+
#################
54+
# Redis backup_policy
55+
#################
56+
57+
backup_policy_backup_time = "02:00Z-03:00Z"
58+
backup_policy_backup_period = ["Monday", "Wednesday", "Friday"]
59+
60+
#################
61+
# Redis account
62+
#################
63+
64+
accounts = [
65+
{
66+
account_name = "user1"
67+
account_password = "plan111111"
68+
account_privilege = "RoleReadOnly"
69+
account_type = "Normal"
70+
},
71+
{
72+
account_name = "user2"
73+
account_password = "plan222222"
74+
},
75+
]
76+
77+
#############
78+
# cms_alarm
79+
#############
80+
alarm_rule_name = "CmsAlarmForRedis"
81+
alarm_rule_statistics = "Average"
82+
alarm_rule_period = 300
83+
alarm_rule_operator = "<="
84+
alarm_rule_threshold = 35
85+
alarm_rule_triggered_count = 2
86+
alarm_rule_contact_groups = ["AccCms"]
87+
}

0 commit comments

Comments
 (0)