Simplifies the process of discovering AWS networking data for Northwood Labs resources.
Information | Description |
---|---|
Terraform Versions | 1.6, 1.7, 1.8 |
OpenTofu Versions | 1.6, 1.7 |
-
Designed to be highly composable, and has no hard-dependencies on other modules.
-
Integration tests run automatically on every commit against supported versions of Terraform/OpenTofu.
-
Outputs can be easily used with other modules which need network identifiers for VPCs and Subnets.
-
Only looks-up data, but does not persist any data itself, making it completely stateless.
-
Purpose-built, meaning that it is designed to solve a single orthogonal problem. Aims to fit 90% of use-cases.
More examples can be found in the ./examples
directory.
# Load the module
module "aws_networking" {
source = "https://github.com/northwood-labs/mod-aws-networking.git?ref={tag}"
}
resource "aws_lambda_function" "test_lambda" {
function_name = var.lambda_function_name
# other configuration...
vpc_config {
subnet_ids = module.aws_networking.subnet_ids
}
}
Name | Provider | Version |
---|---|---|
terraform |
~> 1.6 |
|
aws |
hashicorp/aws | ~> 5.42 |
Req | Variable | Type | Description | Default |
---|
Name | Description |
---|---|
internet_gateway |
An object containing all data for this internet gateway. |
internet_gateway_arn |
The ARN of this internet gateway. |
internet_gateway_id |
The ID of this internet gateway. |
nacl |
An object containing all data for this Network Access Control List (NACL). |
nacl_ids |
List of all Network Access Control List (NACL) IDs in the VPC. |
route_table |
An object containing all data for this route table. |
route_table_arn |
The ARN of this route table. |
route_table_id |
The ID of this route table. |
subnet_ids |
List of all Subnet IDs in the VPC. |
subnet_int_a |
An object containing all data for subnet A. |
subnet_int_a_arn |
The ARN of subnet A. |
subnet_int_a_cidr |
The Availability Zone CIDR block of subnet A. |
subnet_int_a_id |
The ID of subnet A. |
subnet_int_a_zone |
The Availability Zone of subnet A. |
subnet_int_a_zone_id |
The Availability Zone ID of subnet A. |
subnet_int_b |
An object containing all data for subnet B. |
subnet_int_b_arn |
The ARN of subnet B. |
subnet_int_b_cidr |
The Availability Zone CIDR block of subnet B. |
subnet_int_b_id |
The ID of subnet B. |
subnet_int_b_zone |
The Availability Zone of subnet B. |
subnet_int_b_zone_id |
The Availability Zone ID of subnet B. |
subnet_int_c |
An object containing all data for subnet C. |
subnet_int_c_arn |
The ARN of subnet C. |
subnet_int_c_cidr |
The Availability Zone CIDR block of subnet C. |
subnet_int_c_id |
The ID of subnet C. |
subnet_int_c_zone |
The Availability Zone of subnet C. |
subnet_int_c_zone_id |
The Availability Zone ID of subnet C. |
vpc |
An object containing all VPC data. |
vpc_arn |
The ARN of the VPC in this account. |
vpc_cidr |
The CIDR of the VPC in this account. |
vpc_id |
The ID of the VPC in this account. |
Kind | Source | Name | Provider |
---|---|---|---|
data source | data.aws_caller_identity |
current |
hashicorp/aws |
data source | data.aws_internet_gateway |
igw |
hashicorp/aws |
data source | data.aws_network_acls |
nacl |
hashicorp/aws |
data source | data.aws_region |
current |
hashicorp/aws |
data source | data.aws_route_table |
route_table |
hashicorp/aws |
data source | data.aws_subnet |
subnet_int_a |
hashicorp/aws |
data source | data.aws_subnet |
subnet_int_b |
hashicorp/aws |
data source | data.aws_subnet |
subnet_int_c |
hashicorp/aws |
data source | data.aws_subnets |
subnets |
hashicorp/aws |
data source | data.aws_vpc |
vpc |
hashicorp/aws |
For integration tests, we use the Terratest testing framework. All of the building and testing dependencies are bundled-up as a Docker image, so see northwood-labs/dev-env before running these tests.
These tests create real resources, which cost real money.
make test