What capabilities does the current Module provide:
- One-click deployment of VPC and related resources.
- Use the resource's name to query the resource's ID by data-sources.
module "vpc_service" {
source = "terraform-huaweicloud-modules/vpc-service"
vpc_name = "module-single-vpc"
vpc_cidr_block = "172.16.0.0/16"
subnet_configuration = [
{
name="module-single-master-subnet",
cidr="172.16.66.0/24"
},
{
name="module-single-standby-subnet",
cidr="172.16.86.0/24"
},
]
is_security_group_create = false
}Create a security group and three security group rules (contains a self access rule in security group)
module "vpc_service" {
source = "terraform-huaweicloud-modules/vpc-service"
is_vpc_create = false
is_security_group_create = true
security_group_name = "module-single-security-group"
security_group_description = "Created by terraform module"
subnet_configuration = [
{
description="Created by terraform module",
direction="ingress",
ethertype="IPv6",
protocol="tcp",
ports="22",
remote_ip_prefix="::/0",
action="deny",
priority=100,
},
]
}module "vpc_service" {
source = "terraform-huaweicloud-modules/vpc-service"
query_vpc_names = ["module-single-vpc"]
query_subnet_names = ["module-single-master-subnet", "module-single-standby-subnet"]
query_security_group_names = ["module-single-security-group"]
}Report issues/questions/feature requests in the issues section.
Full contributing guidelines are covered here.
| Name | Version |
|---|---|
| Terraform | >= 1.3.0 |
| Huaweicloud Provider | >= 1.40.0 |
| Name | Type |
|---|---|
| huaweicloud_vpc.this | resource |
| huaweicloud_vpc_subnet.this | resource |
| huaweicloud_networking_secgroup.this | resource |
| huaweicloud_networking_secgroup_rule.in_v4_self_group | resource |
| huaweicloud_networking_secgroup_rule.this | resource |
| huaweicloud_vpc_address_group.security_group_rules_auto_created | resource |
| huaweicloud_networking_secgroup_rule.remote_address_group | resource |
| data.huaweicloud_vpcs.this | data-source |
| data.huaweicloud_vpc_subnets.this | data-source |
| data.huaweicloud_networking_secgroups.this | data-source |
| data.huaweicloud_networking_secgroup_rules.this | data-source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| enterprise_project_id | Used to specify whether the resource is created under the enterprise project (this parameter is only valid for enterprise users) | string | "" | N |
| availability_zone | The availability zone to which the VPC subnet resource belongs | string | "" | N |
| is_vpc_create | Controls whether a VPC should be created (it affects all VPC related resources under this module) | bool | true | N |
| vpc_name | The name of the VPC resource | string | "" | Y (Unless is_vpc_create is specified as false) |
| vpc_cidr | The CIDR block of the VPC resource | string | "192.168.0.0/16" | N |
| vpc_description | The description of the VPC resource | string | "" | N |
| vpc_secondary_cidrs | The secondary CIDR blocks of the VPC resource | list(string) | [] |
N |
| vpc_tags | The key/value pairs to associte with the VPC resource | map(string) | {} |
N |
| subnets_configuration | The configuration for the subnet resources to which the VPC belongs | list(object({ |
[] |
N |
| is_security_group_create | Controls whether a security group should be created (it affects all security group related resources under this module) | bool | true | N |
| security_group_name | The name of the security group resource" | string | "" | Y (Unless is_security_group_create is specified as false) |
| security_group_description | The description of the security group resource | string | "" | N |
| security_group_rules_configuration | The configuration for security group rule resources to which the security group belongs Notes: 1. The usage priority of the parameters remote_ip_prefix, remote_group_id, and remote_address_group_id is: remote_group_id > remote_address_group_id > remote_ip_prefix 2. The parameters remote_address_group_id and remote_addresses cannot be configured at the same time 3. The parameters address_group_name is required if remote_addresses is configured |
list(object({ |
[] |
N |
| query_vpc_names | The VPC name list used to query the resource IDs | list(string) | [] |
N |
| query_subnet_names | The subnet name list used to query the resource IDs | list(string) | [] |
N |
| query_security_group_names | The security group name list used to query the resource IDs | list(string) | [] |
N |
| Name | Description |
|---|---|
| vpc_id | The ID of the VPC resource |
| vpc_cidr | The CIDR block of the VPC resource |
| subnet_cidrs | The CIDR list of the subnet resources to which the VPC resource belongs |
| subnet_ids | The ID list of the subnet resources to which the VPC resource belongs |
| security_group_id | The ID of the security group resource |
| security_group_rules | All rules to which the security group resource belongs |
| queried_vpc_ids | The ID list of the VPC resources for data-source query by resource name |
| queried_subnet_ids | The ID list of the subnet resources for data-source query by resource name |
| queried_security_group_ids | The ID list of the security group resources for data-source query by resource name |