feat!: Refactor modules to group single resource modules into higher order modules #122
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
v1.5.7
is now minimum supported versionv6.3
is now minimum supported versionzones
andrecords
module with newzone
module that creates a Route53 zone, records, as well as association authorization, and DNSSEC signing keydelegation-sets
module; users are encouraged to use the standalone resource for this functionalityresolver-rule-associations
; this functionality can be implemented with the standalone resource or used within whats provided in theresolver-endpoint
modulezone-cross-account-vpc-association
; this functionality is split up with the association authorization resource added within the newzone
module, and the association resource should be implemented on its own by usersresolver-firewall-rule-group
is added from the experimental proposal herewrappers
which follow the norms of our other modulesMotivation and Context
zones
andrecords
modules were a single resource module over the route53 zone and record resources which on their own doesn't offer a lot of value and seemed to cause more issues than benefit. Moving resources that have a strong dependency on ordering alleviates a lot of these issues and makes the module more broadly applicable (if you create a zone, you'll inevitably want to create records. you do not have to create records; those can be added externally through the record resource itself)delegation-sets
module was another single resource module - this type of resource is better used on its own (bare resource) since its likely to be passed into a number of modules (zones) so that all zones have the same name serverszone-cross-account-vpc-association
was a peculiar module. It seems its functionality was intended to assist with associating zones with other accounts/regions. However, these sharing resources are typically better left as one-sided; where the resource creation side allows/extends the sharing of said resource, and elsewhere the accepting side receives/accepts said shared resource. This module is now facing issues due to its design requiring two different aws providers. Some of the functionality is preserved - the association authorization resource resides within the newzone
module which allows the zone to be associated with a different account/region. However, performing the actual association is left to the user through theaws_route53_zone_association
resource (this could be in their same statefile, in separate statefile, etc.). tl;dr - it still supports associations but without the hard assumption on how that is performedBreaking Changes
v5.0
and prior into this new module structure. Users are free to continue using the prior versions as is, forking at a prior version and utilizing their fork if they require changes, or removing the resources in question from Terraform state and performing imports into the new module structureHow Has This Been Tested?
examples/*
to demonstrate and validate my change(s)examples/*
projectspre-commit run -a
on my pull request