terraform-aws-tardigrade-vpc-ipam

POOLS variable

It is important that you specify the ipam_scope_name attribute to match either "public_default_scope", "private_default_scope", or exact match to your vpc_ipam.scopes.name input on the first module call. Once you've created your scopes by name, then you can reference by id in subsequent module calls. You may also provide ipam_scope_id instead of ipam_scope_name. The two are mutually exclusive, do not provide both.

Managing a hierarchy of pools can be a bit tricky. You'll need to call the module successively to build up the structure, chaining the outputs together.

Requirements

Name Version
terraform >= 1.3
aws >= 4.40.0

Providers

Name Version
aws >= 4.40.0

Resources

Name Type

Inputs

Name Description Type Default Required
vpc_ipam Object of inputs for all IPAM configuration resources
object({
ipam = optional(object({
name = optional(string)
operating_regions = list(object({
region_name = string
}))
tags = optional(map(string))
cascade = optional(bool)
description = optional(string)
}))
pools = optional(list(object({
name = string
address_family = optional(string)
allocation_default_netmask_length = optional(number)
allocation_max_netmask_length = optional(number)
allocation_min_netmask_length = optional(number)
allocation_resource_tags = optional(map(string))
auto_import = optional(bool)
aws_service = optional(bool)
description = optional(string)
ipam_scope_name = optional(string)
ipam_scope_id = optional(string)
locale = optional(string)
publicly_advertisable = optional(bool)
public_ip_source = optional(string)
source_ipam_pool_id = optional(string)
tags = optional(map(string))
})), [])
pool_cidrs = optional(list(object({
name = string
cidr = optional(string)
cidr_authorization_context = optional(object({
cidr_authorization_context_message = optional(string)
cidr_authorization_context_signature = optional(string)
}))
ipam_pool_id = string
netmask_length = optional(number)
})), [])
pool_cidr_allocations = optional(list(object({
cidr = optional(string)
description = optional(string)
disallowed_cidrs = optional(list(string))
ipam_pool_id = string
netmask_length = optional(number)
})), [])
preview_next_cidr = optional(object({
disallowed_cidrs = optional(list(string))
ipam_pool_id = string
netmask_length = optional(number)
}))
scopes = optional(list(object({
name = string
description = optional(string)
tags = optional(map(string))
})), [])
})
n/a yes

Outputs

Name Description
ipam Object of all AWS VPC IPAM
pool_cidr Map of VPC IPAM Pool Cidrs objects
pools Map of VPC IPAM Pool Objects
scopes Map of VPC IPAM Scope objects