Skip to content

Commit 84e2c6d

Browse files
authored
Merge pull request #2 from alibabacloud-automation/xiaozhu
add quickstarts for nlb load balancer
2 parents 1f09801 + 52eca17 commit 84e2c6d

File tree

7 files changed

+191
-5
lines changed

7 files changed

+191
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<!-- BEGIN_TF_DOCS -->
2+
## Providers
3+
4+
| Name | Version |
5+
|------|---------|
6+
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |
7+
8+
## Resources
9+
10+
| Name | Type |
11+
|------|------|
12+
| [alicloud_nlb_load_balancer.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/resources/nlb_load_balancer) | resource |
13+
| [alicloud_nlb_zones.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/nlb_zones) | data source |
14+
| [alicloud_vpcs.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/vpcs) | data source |
15+
| [alicloud_vswitches.default_1](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/vswitches) | data source |
16+
| [alicloud_vswitches.default_2](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/vswitches) | data source |
17+
18+
## Inputs
19+
20+
| Name | Description | Type | Default | Required |
21+
|------|-------------|------|---------|:--------:|
22+
| <a name="input_address_type_var"></a> [address\_type\_var](#input\_address\_type\_var) | n/a | `string` | `"Internet"` | no |
23+
<!-- END_TF_DOCS -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
data "alicloud_nlb_zones" "default" {
2+
}
3+
4+
data "alicloud_vpcs" "default" {
5+
name_regex = "^default-NODELETING$"
6+
}
7+
8+
data "alicloud_vswitches" "default_1" {
9+
vpc_id = data.alicloud_vpcs.default.ids.0
10+
zone_id = data.alicloud_nlb_zones.default.zones.0.id
11+
}
12+
13+
data "alicloud_vswitches" "default_2" {
14+
vpc_id = data.alicloud_vpcs.default.ids.0
15+
zone_id = data.alicloud_nlb_zones.default.zones.1.id
16+
}
17+
18+
locals {
19+
zone_id_1 = data.alicloud_nlb_zones.default.zones.0.id
20+
vswitch_id_1 = data.alicloud_vswitches.default_1.ids[0]
21+
zone_id_2 = data.alicloud_nlb_zones.default.zones.1.id
22+
vswitch_id_2 = data.alicloud_vswitches.default_2.ids[0]
23+
}
24+
25+
resource "alicloud_nlb_load_balancer" "default" {
26+
zone_mappings {
27+
zone_id = local.zone_id_1
28+
vswitch_id = local.vswitch_id_1
29+
}
30+
zone_mappings {
31+
vswitch_id = local.vswitch_id_2
32+
zone_id = local.zone_id_2
33+
}
34+
35+
address_type = var.address_type_var
36+
vpc_id = data.alicloud_vpcs.default.ids.0
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
variable "address_type_var" {
2+
default = "Internet"
3+
}
4+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!-- BEGIN_TF_DOCS -->
2+
## Providers
3+
4+
| Name | Version |
5+
|------|---------|
6+
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |
7+
8+
## Resources
9+
10+
| Name | Type |
11+
|------|------|
12+
| [alicloud_common_bandwidth_package.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/resources/common_bandwidth_package) | resource |
13+
| [alicloud_nlb_load_balancer.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/resources/nlb_load_balancer) | resource |
14+
| [alicloud_nlb_zones.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/nlb_zones) | data source |
15+
| [alicloud_resource_manager_resource_groups.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/resource_manager_resource_groups) | data source |
16+
| [alicloud_vpcs.default](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/vpcs) | data source |
17+
| [alicloud_vswitches.default_1](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/vswitches) | data source |
18+
| [alicloud_vswitches.default_2](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/vswitches) | data source |
19+
| [alicloud_vswitches.default_3](https://registry.terraform.io/providers/hashicorp/alicloud/latest/docs/data-sources/vswitches) | data source |
20+
21+
## Inputs
22+
23+
| Name | Description | Type | Default | Required |
24+
|------|-------------|------|---------|:--------:|
25+
| <a name="input_address_type_var"></a> [address\_type\_var](#input\_address\_type\_var) | n/a | `string` | `"Internet"` | no |
26+
| <a name="input_cross_zone_enabled_var"></a> [cross\_zone\_enabled\_var](#input\_cross\_zone\_enabled\_var) | n/a | `string` | `"false"` | no |
27+
| <a name="input_deletion_protection_enabled_var"></a> [deletion\_protection\_enabled\_var](#input\_deletion\_protection\_enabled\_var) | n/a | `string` | `"false"` | no |
28+
| <a name="input_deletion_protection_reason_var"></a> [deletion\_protection\_reason\_var](#input\_deletion\_protection\_reason\_var) | n/a | `string` | `"tf-open"` | no |
29+
| <a name="input_modification_protection_reason_var"></a> [modification\_protection\_reason\_var](#input\_modification\_protection\_reason\_var) | n/a | `string` | `"tf-open"` | no |
30+
| <a name="input_modification_protection_status_var"></a> [modification\_protection\_status\_var](#input\_modification\_protection\_status\_var) | n/a | `string` | `"NonProtection"` | no |
31+
| <a name="input_name"></a> [name](#input\_name) | n/a | `string` | `"tf-examplecn-hangzhounlbloadbalancer28660"` | no |
32+
<!-- END_TF_DOCS -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
data "alicloud_nlb_zones" "default" {
2+
}
3+
4+
data "alicloud_vpcs" "default" {
5+
name_regex = "^default-NODELETING$"
6+
}
7+
8+
data "alicloud_resource_manager_resource_groups" "default" {
9+
}
10+
11+
data "alicloud_vswitches" "default_1" {
12+
vpc_id = data.alicloud_vpcs.default.ids.0
13+
zone_id = data.alicloud_nlb_zones.default.zones.0.id
14+
}
15+
16+
data "alicloud_vswitches" "default_2" {
17+
vpc_id = data.alicloud_vpcs.default.ids.0
18+
zone_id = data.alicloud_nlb_zones.default.zones.1.id
19+
}
20+
21+
locals {
22+
zone_id_1 = data.alicloud_nlb_zones.default.zones.0.id
23+
vswitch_id_1 = data.alicloud_vswitches.default_1.ids[0]
24+
zone_id_2 = data.alicloud_nlb_zones.default.zones.1.id
25+
vswitch_id_2 = data.alicloud_vswitches.default_2.ids[0]
26+
}
27+
28+
resource "alicloud_common_bandwidth_package" "default" {
29+
bandwidth = 2
30+
internet_charge_type = "PayByBandwidth"
31+
bandwidth_package_name = var.name
32+
description = "${var.name}_description"
33+
}
34+
35+
resource "alicloud_nlb_load_balancer" "default" {
36+
deletion_protection_enabled = var.deletion_protection_enabled_var
37+
tags = {
38+
Created = "tfexample0"
39+
For = "Tfexample 0"
40+
}
41+
address_type = var.address_type_var
42+
resource_group_id = data.alicloud_resource_manager_resource_groups.default.ids.0
43+
vpc_id = data.alicloud_vpcs.default.ids.0
44+
load_balancer_type = "Network"
45+
address_ip_version = "Ipv4"
46+
modification_protection_status = var.modification_protection_status_var
47+
load_balancer_name = var.name
48+
bandwidth_package_id = alicloud_common_bandwidth_package.default.id
49+
zone_mappings {
50+
vswitch_id = local.vswitch_id_1
51+
zone_id = local.zone_id_1
52+
}
53+
zone_mappings {
54+
vswitch_id = local.vswitch_id_2
55+
zone_id = local.zone_id_2
56+
}
57+
58+
deletion_protection_reason = var.deletion_protection_reason_var
59+
modification_protection_reason = var.modification_protection_reason_var
60+
cross_zone_enabled = var.cross_zone_enabled_var
61+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
variable "name" {
2+
default = "tf-examplecn-hangzhounlbloadbalancer28660"
3+
}
4+
5+
variable "modification_protection_reason_var" {
6+
default = "tf-open"
7+
}
8+
9+
variable "cross_zone_enabled_var" {
10+
default = "false"
11+
}
12+
13+
variable "deletion_protection_enabled_var" {
14+
default = "false"
15+
}
16+
17+
variable "address_type_var" {
18+
default = "Internet"
19+
}
20+
21+
variable "modification_protection_status_var" {
22+
default = "NonProtection"
23+
}
24+
25+
variable "deletion_protection_reason_var" {
26+
default = "tf-open"
27+
}
28+

scripts/terraform-test.sh

+6-5
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,29 @@ folders=$1
66
for f in ${folders//,/ }
77
do
88
f=$(echo $f | xargs echo -n)
9-
echo "===> Terraform testing in" $f
9+
echo ""
10+
echo "====> Terraform testing in" $f
1011
terraform -chdir=$f init -upgrade
1112
~/.init-env
1213
source ./.terraform_profile
1314
echo ""
14-
echo "---> Plan Testing"
15+
echo "----> Plan Testing"
1516
cp scripts/plan.tftest.hcl $f/
1617
terraform -chdir=$f test test -verbose
1718
if [[ $? -ne 0 ]]; then
1819
success=false
1920
echo -e "\033[31m[ERROR]\033[0m: running terraform test for plan failed."
2021
else
2122
echo ""
22-
echo "---> Apply Testing"
23-
rm -rf scripts/plan.tftest.hcl
23+
echo "----> Apply Testing"
24+
rm -rf $f/plan.tftest.hcl
2425
cp scripts/apply.tftest.hcl $f/
2526
terraform -chdir=$f test test
2627
if [[ $? -ne 0 ]]; then
2728
success=false
2829
echo -e "\033[31m[ERROR]\033[0m: running terraform test for apply failed."
2930
fi
30-
rm -rf scripts/apply.tftest.hcl
31+
rm -rf $f/apply.tftest.hcl
3132
fi
3233
done
3334

0 commit comments

Comments
 (0)