Releases: cloudposse/terraform-aws-vpc
v2.2.0-alpha1 documentation only
🤖 Automatic Updates
Update README.md and docs @cloudpossebot (#126)
what
This is an auto-generated PR that updates the README.md and docs
why
To have most recent changes of README.md and doc from origin templates
v2.1.1
Add support for network address usage metrics @lanzrein (#124)
what
This PR adds support for Network Address Usage Metrics on the VPC.
AWS documentation : https://docs.aws.amazon.com/vpc/latest/userguide/network-address-usage.html
Terraform documentation : https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc#enable_network_address_usage_metrics
why
Network Address Usage metrics can help monitor the growth of a VPC and would be useful for any user.
Enable this after creating a VPC does not trigger recreation of the VPC.
references
closes #115
Sync github @max-lobur (#120)
Rebuild github dir from the template
🤖 Automatic Updates
Update README.md and docs @cloudpossebot (#125)
what
This is an auto-generated PR that updates the README.md and docs
why
To have most recent changes of README.md and doc from origin templates
v2.1.0
- No changes
v2.0.0 Breaking changes, better VPC Endpoint support
🚀 Enhancements
Breaking changes: See migration notes for details.
Drop support for deprecated features, revamp VPC Endpoint support @Nuru (#112)
Note
This will be released as version 2.0.0-rc1 and possibly as 2.0.0 without changes.
See migration notes for details.
what
- Drop support for deprecated features
- Revamp VPC Endpoint support (
modules/vpc-endpoints
) - Clean up documentation
- Update tests to current framework and current modules
why
- AWS is retiring ClassicLink. Closes #111
- AWS provider version 4 deprecates (and version 5 is set to remove) inline resource creation for VPC Endpoint Route Tables, Subnet associations, and Security Group associations. Convert to new architecture in preparation for v5.
- Add route table association for VPC Gateway Endpoints as a convenience, since they are always needed
- More clarity, more standardization
- Keep examples current, pull in bugfixes and security updates
references
v2.0.0-rc1 Enhanced VPC Endpoint support, drop deprecated features
Breaking changes: See migration notes for details.
Drop support for deprecated features, revamp VPC Endpoint support @Nuru (#112)
Note
This will be released as version 2.0.0-rc1 and possibly as 2.0.0 without changes.
See migration notes for details.
what
- Drop support for deprecated features
- Revamp VPC Endpoint support (
modules/vpc-endpoints
) - Clean up documentation
- Update tests to current framework and current modules
why
- AWS is retiring ClassicLink. Closes #111
- AWS provider version 4 deprecates (and version 5 is set to remove) inline resource creation for VPC Endpoint Route Tables, Subnet associations, and Security Group associations. Convert to new architecture in preparation for v5.
- Add route table association for VPC Gateway Endpoints as a convenience, since they are always needed
- More clarity, more standardization
- Keep examples current, pull in bugfixes and security updates
references
v1.2.0
add/default-route-table @cdobbyn (#110)
what
- Manages the default route table created alongside
aws_vpc
resource automatically.
why
- If not managed there are no identifying features about this resource which is confusing.
- In our case we establish ownership via tags passed into this module, if no tags are present it is difficult to report on ownership
references
- Closes #109
- aws_default_route_table
v1.1.1
git.io->cloudposse.tools update @dylanbannon (#106)
what and why
Change all references to git.io/build-harness
into cloudposse.tools/build-harness
, since git.io
redirects will stop working on April 29th, 2022.
References
- DEV-143
🚀 Enhancements
Fix syntax error in example @vanastassiou (#107)
Fixes a syntax error in the "Full example with terraform-aws-dynamic-subnets" code that results in a terraform plan
failure.
what
- The example presented with
dynamic-subnets
generates a syntax error duringterraform plan
why
- Improves documentation reliability
v1.1.0 IPv6 & IPAM support, minor breaking change
This release brings full support for IPv6 and initial support of IPAM.
It contains a minor breaking change:
- The output
ipv6_cidr_block
has been renamedvpc_ipv6_cidr_block
to be consistent with other output names
IPv6 and IPAM support @Nuru (#104)
what
- Adds support for IPv6 configuration
- Adds preliminary support for IP Address Manager (IPAM)
- Updates framework to current
why
- Support new features by request
migration notes
These changes should be backward compatible. However, 3 variables were deprecated and replaced, and use of the new variables is encouraged.
ipv6_enabled
deprecated in favor of assign_generated_ipv6_cidr_block
In PR #99 released in version v0.28.0, we deprecated assign_generated_ipv6_cidr_block
in favor of ipv6_enabled
as part of a more general renaming of inputs to follow Cloud Posse's convention of naming boolean flags with _enabled
at the end. However, now that we have IPAM, the name ipv6_enabled
is misleading: it only means assign_generated_ipv6_cidr_block
and you have to set that to false
in order to assign an IPv6 address from IPAM. We do not want require you to set ipv6_enabled = false
in order to use IPv6 IPAM, so we are reversing course on this variable, deprecating ipv6_enabled
and reviving assign_generated_ipv6_cidr_block
.
cidr_block
deprecated in favor of ipv4_primary_cidr_block
Now that a VPC can have multiple IPv4 CIDR blocks along with multiple IPv6 CIDR blocks, the name cidr_block
is just too vague. Use ipv4_primary_cidr_block
instead to set the primary IPv4 CIDR block for the VPC.
additional_cidr_blocks
deprecated in favor of ipv4_additional_cidr_block_associations
As with cidr_block
, additional_cidr_blocks
is now too vague given that the module supports both IPv4 and IPv6 CIDR blocks. Also, you now have the option of having these CIDR blocks allocated by IPAM rather than being specified directly, requiring additional input parameters. So we created the new ipv4_additional_cidr_block_associations
and the parallel ipv6_additional_cidr_block_associations
to replace additional_cidr_blocks
(which, while deprecated, remains supported for now).
Note that the new variables take maps of configurations rather than lists of configurations. This is because each configuration is deployed as a separate Terraform resource, and the resources are not easily deleted and recreated. If you supply a list and then later remove the first element of the list, Terraform will deleted and recreate all the resources because Terraform tracks them by their list index and does not detect that they have simply moved. It sees that configuration 1 has changed (it is now what used to be configuration 2) so it deletes the old 1 and creates the old 2 as the new 1. This annoying at best, and with CIDR blocks being deleted and recreated it will likely fail at worst.
By providing the configurations as maps, you give each configuration a stable label, so that when you make a change, only the affected configuration changes. Removing a configuration does not affect the other configurations. The labels you assign are arbitrary and for your own benefit; the only requirement is that they be known at "plan time", meaning they cannot be generated by the Terraform code itself.
notes
Due to the difficulty of configuring and testing the AWS VPC IP Address Manager, this feature has not been tested and support for it should be considered preliminary. Please report issues as you discover them.
Some inputs have been deprecated. New inputs typically take a map rather than a list so that we can use for_each
(for stability as the set of inputs changes) without relying on the values in the list (which can cause Terraform to complain that the results depend on values not available at "plan" time).
Supersedes and closes #103
🚀 Enhancements
WIP: Add ipv4_ipam_pool_id & ipv4_netmask_length @jbouse (#102)
what
- Add
ipv4_ipam_pool_id
&ipv4_netmask_length
variables - Update
cidr_block
with default value ofnull
- Variables
cidr_block
is mutually exclusive to usingipv4_ipam_pool_id
andipv4_netmask_length
why
- In order to support assigning the
cidr_block
auto-assignment for a VPC provided from an AWS VPC IPAM pool
v1.0.0 Initial release with production Semantic Versioning
Initial release with production Semantic Versioning, part of Cloud Posse's general policy to convert to production versioning as we make updates to relatively mature modules, especially those where we see breaking changes coming in the near future. This release is exactly the same as v0.28.1.
We anticipate breaking changes (or at least changes that may cause resources to be moved from one Terraform "address" to another) in the near future (to be released as v2.0.0) as we add additional IPv6 support and support for AWS IP Address Manager (IPAM) along with additional changes for robustness.