Skip to content

Commit bed395a

Browse files
MrWolongxiaozhu36
authored andcommitted
Improves the module examples/complete
1 parent 1b95999 commit bed395a

File tree

31 files changed

+653
-432
lines changed

31 files changed

+653
-432
lines changed

.gitignore

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,10 @@
1-
# Local .terraform directories
2-
**/.terraform/*
3-
4-
# .tfstate files
1+
# Compiled files
52
*.tfstate
6-
*.tfstate.*
7-
8-
# Crash log files
9-
crash.log
10-
11-
# Ignore any .tfvars files that are generated automatically for each Terraform run. Most
12-
# .tfvars files are managed as part of configuration and so should be included in
13-
# version control.
14-
#
15-
# example.tfvars
3+
*.tfstate.backup
4+
*.terraform.*
165

17-
# Ignore override files as they are usually used to override resources locally and so
18-
# are not checked in
19-
override.tf
20-
override.tf.json
21-
*_override.tf
22-
*_override.tf.json
23-
24-
# Include override files you do wish to add to version control using negated pattern
25-
#
26-
# !example_override.tf
27-
28-
# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
29-
# example: *tfplan*
6+
# Module directory
7+
.terraform/
308

319
# terraform log
3210
*.log
@@ -41,4 +19,6 @@ override.tf.json
4119
# others
4220
*.bak
4321
*.bk
44-
*.terraform*
22+
**/.terraform/*
23+
.terraform.lock.hcl
24+
.terraform.tfstate.lock.info

README-CN.md

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
terraform-alicloud-redis
33
=====================================================================
44

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

87
本 Module 支持创建以下资源:
@@ -16,7 +15,7 @@ terraform-alicloud-redis
1615

1716
| Name | Version |
1817
|------|---------|
19-
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.12.0 |
18+
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13.0 |
2019
| <a name="requirement_alicloud"></a> [alicloud](#requirement\_alicloud) | >= 1.56.0
2120

2221
## 用法
@@ -153,7 +152,7 @@ module "redis" {
153152
更多模板详见 [Modules](https://github.com/terraform-alicloud-modules/terraform-alicloud-redis/tree/master/modules).
154153

155154
## 注意事项
156-
本Module从版本v1.3.0开始已经移除掉如下的 provider 的显示设置
155+
本Module从版本v1.3.0开始已经移除掉如下的 provider 的显式设置
157156
```hcl
158157
provider "alicloud" {
159158
profile = var.profile != "" ? var.profile : null
@@ -179,7 +178,7 @@ module "redis" {
179178
alarm_rule_operator = "<="
180179
}
181180
```
182-
如果你想对正在使用中的Module升级到 1.3.0 或者更高的版本,那么你可以在模板中显示定义一个相同Region的provider
181+
如果你想对正在使用中的Module升级到 1.3.0 或者更高的版本,那么你可以在模板中显式定义一个相同Region的provider
183182
```hcl
184183
provider "alicloud" {
185184
region = "cn-hangzhou"
@@ -193,7 +192,7 @@ module "redis" {
193192
alarm_rule_operator = "<="
194193
}
195194
```
196-
或者,如果你是多Region部署,你可以利用 `alias` 定义多个 provider,并在Module中显示指定这个provider
195+
或者,如果你是多Region部署,你可以利用 `alias` 定义多个 provider,并在Module中显式指定这个provider
197196

198197
```hcl
199198
provider "alicloud" {
@@ -229,6 +228,4 @@ Apache 2 Licensed. See LICENSE for full details.
229228
---------
230229
* [Terraform-Provider-Alicloud Github](https://github.com/terraform-providers/terraform-provider-alicloud)
231230
* [Terraform-Provider-Alicloud Release](https://releases.hashicorp.com/terraform-provider-alicloud/)
232-
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)
233-
234-
231+
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)

README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ These types of resources are supported:
1717

1818
| Name | Version |
1919
|------|---------|
20-
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.12.0 |
20+
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.13.0 |
2121
| <a name="requirement_alicloud"></a> [alicloud](#requirement\_alicloud) | >= 1.56.0
2222

2323
Usage
@@ -236,5 +236,4 @@ Reference
236236
---------
237237
* [Terraform-Provider-Alicloud Github](https://github.com/terraform-providers/terraform-provider-alicloud)
238238
* [Terraform-Provider-Alicloud Release](https://releases.hashicorp.com/terraform-provider-alicloud/)
239-
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)
240-
239+
* [Terraform-Provider-Alicloud Docs](https://www.terraform.io/docs/providers/alicloud/index.html)

examples/complete/README.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
# Complete RDS example for Redis
1+
# Complete
2+
3+
Configuration in this directory creates Redis instance and other resources.
24

35
## Usage
46

@@ -10,6 +12,21 @@ $ terraform plan
1012
$ terraform apply
1113
```
1214

13-
Note that this example will create resources which cost money. Run `terraform destroy` when you don't need these resources.
15+
Note that this example may create resources which cost money. Run `terraform destroy` when you don't need these resources.
16+
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
1428

15-
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
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: 70 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,89 @@
1-
variable "region" {
2-
default = "cn-beijing"
1+
data "alicloud_zones" "default" {
2+
available_resource_creation = "KVStore"
33
}
4-
provider "alicloud" {
5-
region = var.region
4+
5+
data "alicloud_cms_alarm_contact_groups" "default" {
66
}
7-
locals {
7+
8+
data "alicloud_kvstore_instance_classes" "default" {
89
engine = "Redis"
9-
engine_version = "4.0"
10-
edition_type = "Community"
11-
architecture = "cluster"
10+
engine_version = var.engine_version
11+
zone_id = data.alicloud_zones.default.zones.0.id
1212
}
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
13+
14+
resource "alicloud_kms_key" "kms" {
15+
key_usage = "ENCRYPT/DECRYPT"
16+
pending_window_in_days = var.pending_window_in_days
17+
status = "Enabled"
2018
}
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
19+
20+
resource "alicloud_kms_ciphertext" "kms" {
21+
plaintext = "test"
22+
key_id = alicloud_kms_key.kms.id
23+
encryption_context = {
24+
test = "test"
25+
}
2626
}
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)
27+
28+
module "vpc" {
29+
source = "alibaba/vpc/alicloud"
30+
create = true
31+
vpc_cidr = "172.16.0.0/16"
32+
vswitch_cidrs = ["172.16.0.0/21"]
33+
availability_zones = [data.alicloud_zones.default.zones.0.id]
3234
}
33-
module "redis_example" {
34-
source = "../../"
35-
region = var.region
3635

37-
#################
38-
# Redis Instance
39-
#################
36+
module "redis_example" {
37+
source = "../.."
4038

41-
engine_version = local.engine_version
42-
instance_name = "myInstance"
43-
instance_class = "redis.logic.sharding.2g.8db.0rodb.8proxy.default"
44-
password = "Yourpwd123456"
45-
period = 1
46-
availability_zone = data.alicloud_zones.default.zones.0.multi_zone_ids.0
47-
vswitch_id = alicloud_vswitch.this.id
48-
security_ips = ["1.1.1.1", "2.2.2.2", "3.3.3.3"]
49-
tags = {
50-
Env = "Private"
51-
Location = "Secret"
52-
}
39+
#alicloud_kvstore_instance
40+
create_instance = true
5341

54-
#################
55-
# Redis backup_policy
56-
#################
42+
engine_version = var.engine_version
43+
instance_name = var.instance_name
44+
instance_class = data.alicloud_kvstore_instance_classes.default.instance_classes.0
45+
availability_zone = data.alicloud_zones.default.zones.0.id
46+
vswitch_id = module.vpc.this_vswitch_ids[0]
47+
security_ips = var.security_ips
48+
instance_charge_type = var.instance_charge_type
49+
period = var.period
50+
auto_renew = var.auto_renew
51+
auto_renew_period = var.auto_renew_period
52+
private_ip = "172.16.0.10"
53+
vpc_auth_mode = var.vpc_auth_mode
54+
password = var.password
55+
kms_encrypted_password = var.kms_encrypted_password
56+
kms_encryption_context = alicloud_kms_ciphertext.kms.encryption_context
57+
maintain_start_time = var.maintain_start_time
58+
maintain_end_time = var.maintain_end_time
59+
tags = var.tags
5760

58-
backup_policy_backup_time = "02:00Z-03:00Z"
59-
backup_policy_backup_period = ["Monday", "Wednesday", "Friday"]
61+
#alicloud_kvstore_backup_policy
62+
backup_policy_backup_period = var.backup_policy_backup_period
63+
backup_policy_backup_time = var.backup_policy_backup_time
6064

61-
#################
62-
# Redis account
63-
#################
65+
#accounts
66+
create_account = true
6467

6568
accounts = [
6669
{
67-
account_name = "user1"
68-
account_password = "plan111111"
69-
account_privilege = "RoleReadOnly"
70+
account_name = "tf_account_name"
71+
account_password = "YourPassword123!"
7072
account_type = "Normal"
71-
},
72-
{
73-
account_name = "user2"
74-
account_password = "plan222222"
75-
},
73+
account_privilege = var.account_privilege
74+
}
7675
]
7776

78-
#############
79-
# cms_alarm
80-
#############
81-
alarm_rule_name = "CmsAlarmForRedis"
82-
alarm_rule_statistics = "Average"
83-
alarm_rule_period = 300
84-
alarm_rule_operator = "<="
85-
alarm_rule_threshold = 35
86-
alarm_rule_triggered_count = 2
87-
alarm_rule_contact_groups = ["AccCms"]
77+
#alicloud_cms_alarm
78+
enable_alarm_rule = var.enable_alarm_rule
79+
alarm_rule_name = var.alarm_rule_name
80+
alarm_rule_statistics = var.alarm_rule_statistics
81+
alarm_rule_operator = var.alarm_rule_operator
82+
alarm_rule_threshold = var.alarm_rule_threshold
83+
alarm_rule_triggered_count = var.alarm_rule_triggered_count
84+
alarm_rule_period = var.alarm_rule_period
85+
alarm_rule_contact_groups = data.alicloud_cms_alarm_contact_groups.default.names
86+
alarm_rule_silence_time = var.alarm_rule_silence_time
87+
alarm_rule_effective_interval = var.alarm_rule_effective_interval
88+
8889
}

examples/complete/outputs.tf

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#################
22
# Redis Instance
33
#################
4-
54
output "this_redis_instance_id" {
65
description = "This redis instance id."
76
value = module.redis_example.this_redis_instance_id
@@ -95,7 +94,6 @@ output "this_redis_instance_maintain_end_time" {
9594
#################
9695
# Redis Account
9796
#################
98-
9997
output "this_redis_instance_account_name" {
10098
description = "This Redis instance account name."
10199
value = module.redis_example.this_redis_instance_account_name
@@ -104,7 +102,6 @@ output "this_redis_instance_account_name" {
104102
########################
105103
# Redis backup policy
106104
########################
107-
108105
output "this_redis_instance_backup_policy_backup_period" {
109106
description = "This Redis instance backup policy backup period."
110107
value = module.redis_example.this_redis_instance_backup_policy_backup_period
@@ -114,10 +111,10 @@ output "this_redis_instance_backup_policy_backup_time" {
114111
description = "This Redis instance backup policy backup time."
115112
value = module.redis_example.this_redis_instance_backup_policy_backup_time
116113
}
114+
117115
############
118116
# cms alarm
119117
############
120-
121118
output "this_alarm_rule_effective_interval" {
122119
description = "The interval of effecting alarm rule. "
123120
value = module.redis_example.this_alarm_rule_effective_interval
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# alicloud_kms_key
2+
pending_window_in_days = 7
3+
4+
# Redis instance
5+
engine_version = "5.0"
6+
instance_name = "update-tf-testacc-name"
7+
security_ips = ["10.23.12.24"]
8+
period = 2
9+
auto_renew = true
10+
auto_renew_period = 2
11+
vpc_auth_mode = "Close"
12+
password = "YourPassword123!update"
13+
kms_encrypted_password = "YourPassword123!update"
14+
maintain_start_time = "01:00Z"
15+
maintain_end_time = "02:00Z"
16+
tags = {
17+
Name = "updateREDIS"
18+
}
19+
20+
# Redis backup_policy
21+
backup_policy_backup_period = ["Tuesday", "Wednesday"]
22+
backup_policy_backup_time = "01:00Z-02:00Z"
23+
24+
# Redis account
25+
account_privilege = "RoleReadOnly"
26+
27+
# cms_alarm
28+
enable_alarm_rule = false
29+
alarm_rule_name = "update-tf-testacc-rule"
30+
alarm_rule_statistics = "Maximum"
31+
alarm_rule_operator = "<="
32+
alarm_rule_threshold = "35"
33+
alarm_rule_triggered_count = 5
34+
alarm_rule_period = 900
35+
alarm_rule_silence_time = 10000
36+
alarm_rule_effective_interval = "1:00-3:00"

0 commit comments

Comments
 (0)