Skip to content

Commit 4febba1

Browse files
susu9527xiaozhu36
authored andcommitted
add sub module; Improves the module example
1 parent 5260050 commit 4febba1

File tree

42 files changed

+4268
-71
lines changed

Some content is hidden

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

42 files changed

+4268
-71
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
## 1.2.0 (Unreleased)
2-
## 1.1.0 (November 19, 2021)
1+
## 1.3.0 (Unreleased)
2+
## 1.2.0 (August 9, 2023)
3+
IMPROVEMENTS:
34

5+
- Modify deprecate attribute; add sub module; Improves the module example [GH-6](https://github.com/terraform-alicloud-modules/terraform-alicloud-rds-postgres/pull/6)
6+
7+
## 1.1.0 (November 19, 2021)
48
IMPROVEMENTS:
59

610
- Removes the provider setting and improves the Readme [GH-4](https://github.com/terraform-alicloud-modules/terraform-alicloud-rds-postgres/pull/4)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module "postgres" {
3232
#################
3333
# Rds Instance
3434
#################
35-
engine_version = "10.0"
35+
engine_version = "15.0"
3636
instance_storage = 20
3737
instance_charge_type = "Postpaid"
3838
vswitch_id = "vsw-bp1tili2u5kxxxxxx"

example/complete/main.tf

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,49 @@
11
variable "region" {
22
default = "cn-beijing"
33
}
4-
54
provider "alicloud" {
65
region = var.region
76
}
7+
locals {
8+
engine = "PostgreSQL"
9+
engine_version = "12.0"
10+
category = "Basic"
11+
db_instance_storage_type = "cloud_essd"
12+
instance_charge_type = "PostPaid"
13+
}
814

9-
data "alicloud_vpcs" "default" {
10-
is_default = true
15+
data "alicloud_db_zones" "default" {
16+
engine = local.engine
17+
engine_version = local.engine_version
18+
instance_charge_type = local.instance_charge_type
19+
category = local.category
20+
db_instance_storage_type = local.db_instance_storage_type
1121
}
12-
data "alicloud_zones" "default" {
13-
available_resource_creation = "Rds"
14-
multi = true
15-
enable_details = true
22+
23+
resource "alicloud_vpc" "default" {
24+
vpc_name = "terraform-example"
25+
cidr_block = "10.4.0.0/16"
1626
}
17-
resource "alicloud_vswitch" "this" {
18-
name = "postgres_vpc"
19-
availability_zone = data.alicloud_zones.default.zones.0.multi_zone_ids.0
20-
vpc_id = data.alicloud_vpcs.default.vpcs.0.id
21-
cidr_block = cidrsubnet(data.alicloud_vpcs.default.vpcs.0.cidr_block, 4, 15)
27+
28+
resource "alicloud_vswitch" "default" {
29+
vswitch_name = "terraform-example"
30+
cidr_block = "10.4.0.0/24"
31+
vpc_id = alicloud_vpc.default.id
32+
zone_id = data.alicloud_db_zones.default.zones.0.id
2233
}
2334
module "security_group" {
2435
source = "alibaba/security-group/alicloud"
2536
region = var.region
26-
vpc_id = data.alicloud_vpcs.default.ids.0
27-
}
28-
locals {
29-
engine = "PostgreSQL"
30-
engine_version = "10.0"
37+
vpc_id = alicloud_vpc.default.id
3138
}
39+
3240
data "alicloud_db_instance_classes" "default" {
33-
engine = local.engine
34-
engine_version = local.engine_version
35-
category = "Basic"
36-
storage_type = "cloud_ssd"
41+
zone_id = data.alicloud_db_zones.default.zones.0.id
42+
engine = local.engine
43+
engine_version = local.engine_version
44+
category = local.category
45+
db_instance_storage_type = local.db_instance_storage_type
46+
instance_charge_type = local.instance_charge_type
3747
}
3848
module "postgres" {
3949
source = "../../"
@@ -45,9 +55,9 @@ module "postgres" {
4555
create_instance = true
4656
engine_version = local.engine_version
4757
instance_type = data.alicloud_db_instance_classes.default.instance_classes.0.instance_class
48-
vswitch_id = alicloud_vswitch.this.id
58+
vswitch_id = alicloud_vswitch.default.id
4959
instance_name = "PostgreSQLInstance"
50-
instance_storage = lookup(data.alicloud_db_instance_classes.default.instance_classes.0.storage_range, "min")
60+
instance_storage = data.alicloud_db_instance_classes.default.instance_classes.0.storage_range.min
5161
instance_charge_type = "Postpaid"
5262
security_group_ids = [module.security_group.this_security_group_id]
5363
security_ips = ["11.193.54.0/24", "101.37.74.0/24", ]
@@ -82,7 +92,7 @@ module "postgres" {
8292
#######################
8393
account_privilege = "DBOwner"
8494
account_name = "account_name1"
85-
account_password = "yourpassword123"
95+
account_password = "Example12345"
8696

8797
#############
8898
# Alarm Rule

main.tf

Lines changed: 37 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ resource "alicloud_db_instance" "this" {
3434
period = var.period
3535
security_ips = length(var.security_ips) > 0 ? var.security_ips : null
3636
vswitch_id = var.vswitch_id
37+
ssl_action = var.ssl_action
3738
tags = merge(
3839
{
3940
Name = var.instance_name
@@ -63,61 +64,58 @@ resource "alicloud_db_connection" "db_connection" {
6364
}
6465

6566
resource "alicloud_cms_alarm" "cpu_usage" {
66-
count = local.create_more_resources && var.enable_alarm_rule ? 1 : 0
67-
enabled = var.enable_alarm_rule
68-
name = var.alarm_rule_name
69-
project = local.project
70-
metric = "CpuUsage"
71-
dimensions = {
72-
instanceId = local.this_instance_id
73-
device = "/dev/vda1,/dev/vdb1"
74-
}
75-
statistics = var.alarm_rule_statistics
67+
count = local.create_more_resources && var.enable_alarm_rule ? 1 : 0
68+
enabled = var.enable_alarm_rule
69+
name = var.alarm_rule_name
70+
project = local.project
71+
metric = "CpuUsage"
72+
metric_dimensions = "[{\"instanceId\":\"${local.this_instance_id}\",\"device\":\"/dev/vda1\"}]"
7673
period = var.alarm_rule_period
77-
operator = var.alarm_rule_operator
78-
threshold = var.alarm_rule_threshold
79-
triggered_count = var.alarm_rule_triggered_count
8074
contact_groups = var.alarm_rule_contact_groups
8175
silence_time = var.alarm_rule_silence_time
8276
effective_interval = var.alarm_rule_effective_interval
77+
escalations_critical {
78+
statistics = var.alarm_rule_statistics
79+
comparison_operator = var.alarm_rule_operator
80+
threshold = var.alarm_rule_threshold
81+
times = var.alarm_rule_triggered_count
82+
}
8383
}
8484

8585
resource "alicloud_cms_alarm" "connection_usage" {
86-
count = local.create_more_resources && var.enable_alarm_rule ? 1 : 0
87-
enabled = var.enable_alarm_rule
88-
name = var.alarm_rule_name
89-
project = local.project
90-
metric = "ConnectionUsage"
91-
dimensions = {
92-
instanceId = local.this_instance_id
93-
device = "/dev/vda1,/dev/vdb1"
94-
}
95-
statistics = var.alarm_rule_statistics
86+
count = local.create_more_resources && var.enable_alarm_rule ? 1 : 0
87+
enabled = var.enable_alarm_rule
88+
name = var.alarm_rule_name
89+
project = local.project
90+
metric = "ConnectionUsage"
91+
metric_dimensions = "[{\"instanceId\":\"${local.this_instance_id}\",\"device\":\"/dev/vda1\"}]"
9692
period = var.alarm_rule_period
97-
operator = var.alarm_rule_operator
98-
threshold = var.alarm_rule_threshold
99-
triggered_count = var.alarm_rule_triggered_count
10093
contact_groups = var.alarm_rule_contact_groups
10194
silence_time = var.alarm_rule_silence_time
10295
effective_interval = var.alarm_rule_effective_interval
96+
escalations_critical {
97+
statistics = var.alarm_rule_statistics
98+
comparison_operator = var.alarm_rule_operator
99+
threshold = var.alarm_rule_threshold
100+
times = var.alarm_rule_triggered_count
101+
}
103102
}
104103
resource "alicloud_cms_alarm" "disk_usage" {
105-
count = local.create_more_resources && var.enable_alarm_rule ? 1 : 0
106-
enabled = var.enable_alarm_rule
107-
name = var.alarm_rule_name
108-
project = local.project
109-
metric = "DiskUsage"
110-
dimensions = {
111-
instanceId = local.this_instance_id
112-
device = "/dev/vda1,/dev/vdb1"
113-
}
114-
statistics = var.alarm_rule_statistics
104+
count = local.create_more_resources && var.enable_alarm_rule ? 1 : 0
105+
enabled = var.enable_alarm_rule
106+
name = var.alarm_rule_name
107+
project = local.project
108+
metric = "DiskUsage"
109+
metric_dimensions = "[{\"instanceId\":\"${local.this_instance_id}\",\"device\":\"/dev/vda1\"}]"
115110
period = var.alarm_rule_period
116-
operator = var.alarm_rule_operator
117-
threshold = var.alarm_rule_threshold
118-
triggered_count = var.alarm_rule_triggered_count
119111
contact_groups = var.alarm_rule_contact_groups
120112
silence_time = var.alarm_rule_silence_time
121113
effective_interval = var.alarm_rule_effective_interval
114+
escalations_critical {
115+
statistics = var.alarm_rule_statistics
116+
comparison_operator = var.alarm_rule_operator
117+
threshold = var.alarm_rule_threshold
118+
times = var.alarm_rule_triggered_count
119+
}
122120
}
123121

modules/database/main.tf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ resource "alicloud_db_database" "this" {
66
description = lookup(var.databases[count.index], "description")
77
}
88
resource "alicloud_db_account" "this" {
9-
count = var.create_account && var.account_name != "" ? 1 : 0
10-
instance_id = var.db_instance_id
11-
name = var.account_name
12-
password = var.account_password
13-
type = var.account_type
9+
count = var.create_account && var.account_name != "" ? 1 : 0
10+
db_instance_id = var.db_instance_id
11+
account_name = var.account_name
12+
account_password = var.account_password
13+
account_type = var.account_type
1414
}
1515

1616
resource "alicloud_db_account_privilege" "this" {
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# PostgreSQL-12-HighAvailability Alibaba Cloud Rds Terraform Module
2+
3+
## Usage
4+
```hcl
5+
module "rds_db_database" {
6+
source = "terraform-alicloud-modules/rds/alicloud//postgre_sql-12-high-availability"
7+
version = "~> 1.0"
8+
# insert the 2 required variables here
9+
}
10+
```
11+
12+
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
13+
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
locals {
2+
engine = "PostgreSQL"
3+
engine_version = "12.0"
4+
}
5+
data "alicloud_db_instance_classes" "default" {
6+
engine = local.engine
7+
engine_version = local.engine_version
8+
category = "HighAvailability"
9+
storage_type = var.instance_storage_type
10+
}
11+
module "postgres" {
12+
source = "../../"
13+
region = var.region
14+
15+
#################
16+
# Rds Instance
17+
#################
18+
create_instance = var.create_instance
19+
engine_version = local.engine_version
20+
instance_type = var.instance_type != "" ? var.instance_type : data.alicloud_db_instance_classes.default.instance_classes.0.instance_class
21+
instance_storage = var.instance_storage != "" ? var.instance_storage : lookup(data.alicloud_db_instance_classes.default.instance_classes.0.storage_range, "min")
22+
instance_charge_type = var.instance_charge_type
23+
instance_name = var.instance_name
24+
security_group_ids = var.security_group_ids
25+
vswitch_id = var.vswitch_id
26+
security_ips = var.security_ips
27+
tags = var.tags
28+
29+
####################
30+
# Rds Backup policy
31+
####################
32+
preferred_backup_period = var.preferred_backup_period
33+
preferred_backup_time = var.preferred_backup_time
34+
backup_retention_period = var.backup_retention_period
35+
log_backup_retention_period = var.log_backup_retention_period
36+
enable_backup_log = var.enable_backup_log
37+
create_backup_policy = var.create_backup_policy
38+
39+
#################
40+
# Rds Connection
41+
#################
42+
port = var.port
43+
connection_prefix = var.connection_prefix
44+
allocate_public_connection = var.allocate_public_connection
45+
46+
#######################
47+
# Rds Database account
48+
#######################
49+
account_type = var.account_type
50+
account_privilege = var.account_privilege
51+
create_account = var.create_account
52+
account_name = var.account_name
53+
account_password = var.account_password
54+
55+
#################
56+
# Rds Database
57+
#################
58+
create_database = var.create_database
59+
databases = var.databases
60+
61+
#############
62+
# Alarm Rule
63+
#############
64+
alarm_rule_name = var.alarm_rule_name
65+
enable_alarm_rule = var.enable_alarm_rule
66+
alarm_rule_statistics = var.alarm_rule_statistics
67+
alarm_rule_period = var.alarm_rule_period
68+
alarm_rule_operator = var.alarm_rule_operator
69+
alarm_rule_threshold = var.alarm_rule_threshold
70+
alarm_rule_triggered_count = var.alarm_rule_triggered_count
71+
alarm_rule_silence_time = var.alarm_rule_silence_time
72+
alarm_rule_effective_interval = var.alarm_rule_effective_interval
73+
alarm_rule_contact_groups = var.alarm_rule_contact_groups
74+
}

0 commit comments

Comments
 (0)