Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IPv6 subnet mapping for lb #17229

Merged
merged 5 commits into from
Feb 4, 2021
Merged

IPv6 subnet mapping for lb #17229

merged 5 commits into from
Feb 4, 2021

Conversation

bill-rich
Copy link
Contributor

Add support for IPv6 subnet mapping to the aws_lb resource.

Community Note

  • Please vote on this pull request by adding a 👍 reaction to the original pull request comment to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for pull request followers and do not help prioritize the request

Closes #17150

Release note for CHANGELOG:

resource/aws_lb: Add support for IPv6 subnet mapping to the aws_lb resource.

Output from acceptance testing:

==> Checking that code complies with gofmt requirements...
TF_ACC=1 go test ./aws -v -count 1 -parallel 20 -run=TestAccAWSLB_ -timeout 120m
=== RUN   TestAccAWSLB_ALB_basic
=== PAUSE TestAccAWSLB_ALB_basic
=== RUN   TestAccAWSLB_NLB_basic
=== PAUSE TestAccAWSLB_NLB_basic
=== RUN   TestAccAWSLB_LoadBalancerType_Gateway
=== PAUSE TestAccAWSLB_LoadBalancerType_Gateway
=== RUN   TestAccAWSLB_IPv6SubnetMapping
=== PAUSE TestAccAWSLB_IPv6SubnetMapping
=== RUN   TestAccAWSLB_LoadBalancerType_Gateway_EnableCrossZoneLoadBalancing
=== PAUSE TestAccAWSLB_LoadBalancerType_Gateway_EnableCrossZoneLoadBalancing
=== RUN   TestAccAWSLB_ALB_outpost
=== PAUSE TestAccAWSLB_ALB_outpost
=== RUN   TestAccAWSLB_networkLoadbalancerEIP
=== PAUSE TestAccAWSLB_networkLoadbalancerEIP
=== RUN   TestAccAWSLB_NLB_privateipv4address
=== PAUSE TestAccAWSLB_NLB_privateipv4address
=== RUN   TestAccAWSLB_BackwardsCompatibility
=== PAUSE TestAccAWSLB_BackwardsCompatibility
=== RUN   TestAccAWSLB_generatedName
=== PAUSE TestAccAWSLB_generatedName
=== RUN   TestAccAWSLB_generatesNameForZeroValue
=== PAUSE TestAccAWSLB_generatesNameForZeroValue
=== RUN   TestAccAWSLB_namePrefix
=== PAUSE TestAccAWSLB_namePrefix
=== RUN   TestAccAWSLB_tags
=== PAUSE TestAccAWSLB_tags
=== RUN   TestAccAWSLB_networkLoadbalancer_updateCrossZone
=== PAUSE TestAccAWSLB_networkLoadbalancer_updateCrossZone
=== RUN   TestAccAWSLB_applicationLoadBalancer_updateHttp2
=== PAUSE TestAccAWSLB_applicationLoadBalancer_updateHttp2
=== RUN   TestAccAWSLB_applicationLoadBalancer_updateDropInvalidHeaderFields
=== PAUSE TestAccAWSLB_applicationLoadBalancer_updateDropInvalidHeaderFields
=== RUN   TestAccAWSLB_applicationLoadBalancer_updateDeletionProtection
=== PAUSE TestAccAWSLB_applicationLoadBalancer_updateDeletionProtection
=== RUN   TestAccAWSLB_updatedSecurityGroups
=== PAUSE TestAccAWSLB_updatedSecurityGroups
=== RUN   TestAccAWSLB_updatedSubnets
=== PAUSE TestAccAWSLB_updatedSubnets
=== RUN   TestAccAWSLB_updatedIpAddressType
=== PAUSE TestAccAWSLB_updatedIpAddressType
=== RUN   TestAccAWSLB_noSecurityGroup
=== PAUSE TestAccAWSLB_noSecurityGroup
=== RUN   TestAccAWSLB_ALB_AccessLogs
=== PAUSE TestAccAWSLB_ALB_AccessLogs
=== RUN   TestAccAWSLB_ALB_AccessLogs_Prefix
=== PAUSE TestAccAWSLB_ALB_AccessLogs_Prefix
=== RUN   TestAccAWSLB_NLB_AccessLogs
=== PAUSE TestAccAWSLB_NLB_AccessLogs
=== RUN   TestAccAWSLB_NLB_AccessLogs_Prefix
=== PAUSE TestAccAWSLB_NLB_AccessLogs_Prefix
=== RUN   TestAccAWSLB_networkLoadbalancer_subnet_change
=== PAUSE TestAccAWSLB_networkLoadbalancer_subnet_change
=== CONT  TestAccAWSLB_ALB_basic
=== CONT  TestAccAWSLB_applicationLoadBalancer_updateHttp2
=== CONT  TestAccAWSLB_noSecurityGroup
=== CONT  TestAccAWSLB_ALB_AccessLogs
=== CONT  TestAccAWSLB_updatedSubnets
=== CONT  TestAccAWSLB_networkLoadbalancer_subnet_change
=== CONT  TestAccAWSLB_NLB_AccessLogs_Prefix
=== CONT  TestAccAWSLB_NLB_AccessLogs
=== CONT  TestAccAWSLB_updatedIpAddressType
=== CONT  TestAccAWSLB_ALB_AccessLogs_Prefix
=== CONT  TestAccAWSLB_NLB_privateipv4address
=== CONT  TestAccAWSLB_applicationLoadBalancer_updateDropInvalidHeaderFields
=== CONT  TestAccAWSLB_networkLoadbalancer_updateCrossZone
=== CONT  TestAccAWSLB_tags
=== CONT  TestAccAWSLB_generatesNameForZeroValue
=== CONT  TestAccAWSLB_generatedName
=== CONT  TestAccAWSLB_applicationLoadBalancer_updateDeletionProtection
=== CONT  TestAccAWSLB_namePrefix
=== CONT  TestAccAWSLB_BackwardsCompatibility
=== CONT  TestAccAWSLB_updatedSecurityGroups
--- PASS: TestAccAWSLB_generatesNameForZeroValue (159.88s)
=== CONT  TestAccAWSLB_LoadBalancerType_Gateway_EnableCrossZoneLoadBalancing
--- PASS: TestAccAWSLB_ALB_basic (162.60s)
=== CONT  TestAccAWSLB_networkLoadbalancerEIP
--- PASS: TestAccAWSLB_namePrefix (163.47s)
=== CONT  TestAccAWSLB_ALB_outpost
    data_source_aws_outposts_outposts_test.go:66: skipping since no Outposts found
--- SKIP: TestAccAWSLB_ALB_outpost (1.90s)
=== CONT  TestAccAWSLB_LoadBalancerType_Gateway
--- PASS: TestAccAWSLB_generatedName (179.57s)
=== CONT  TestAccAWSLB_NLB_basic
--- PASS: TestAccAWSLB_BackwardsCompatibility (181.73s)
=== CONT  TestAccAWSLB_IPv6SubnetMapping
--- PASS: TestAccAWSLB_noSecurityGroup (195.40s)
--- PASS: TestAccAWSLB_networkLoadbalancer_subnet_change (215.49s)
--- PASS: TestAccAWSLB_updatedIpAddressType (223.64s)
--- PASS: TestAccAWSLB_updatedSecurityGroups (235.79s)
--- PASS: TestAccAWSLB_NLB_privateipv4address (245.66s)
--- PASS: TestAccAWSLB_ALB_AccessLogs_Prefix (262.48s)
--- PASS: TestAccAWSLB_applicationLoadBalancer_updateDropInvalidHeaderFields (265.60s)
--- PASS: TestAccAWSLB_applicationLoadBalancer_updateDeletionProtection (267.37s)
--- PASS: TestAccAWSLB_applicationLoadBalancer_updateHttp2 (268.64s)
--- PASS: TestAccAWSLB_tags (269.86s)
--- PASS: TestAccAWSLB_updatedSubnets (282.59s)
--- PASS: TestAccAWSLB_networkLoadbalancer_updateCrossZone (292.55s)
--- PASS: TestAccAWSLB_LoadBalancerType_Gateway_EnableCrossZoneLoadBalancing (140.87s)
--- PASS: TestAccAWSLB_ALB_AccessLogs (321.26s)
--- PASS: TestAccAWSLB_IPv6SubnetMapping (187.56s)
--- PASS: TestAccAWSLB_NLB_basic (199.07s)
--- PASS: TestAccAWSLB_networkLoadbalancerEIP (216.08s)
--- PASS: TestAccAWSLB_NLB_AccessLogs_Prefix (383.65s)
--- PASS: TestAccAWSLB_LoadBalancerType_Gateway (219.48s)
--- PASS: TestAccAWSLB_NLB_AccessLogs (419.82s)
PASS
ok  	github.com/terraform-providers/terraform-provider-aws/aws	419.868s

@bill-rich bill-rich requested a review from a team as a code owner January 22, 2021 01:34
@ghost ghost added size/M Managed by automation to categorize the size of a PR. service/elbv2 Issues and PRs that pertain to the elbv2 service. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure. labels Jan 22, 2021
@github-actions github-actions bot added the needs-triage Waiting for first response or review from a maintainer. label Jan 22, 2021
Add support for IPv6 subnet mapping to the aws_lb resource.

Resolves #17150
@bill-rich bill-rich force-pushed the f_support_ipv6_lb_subnet_mapping branch from 2e4a143 to 9adaeee Compare January 22, 2021 01:41
@bill-rich bill-rich removed the needs-triage Waiting for first response or review from a maintainer. label Jan 22, 2021
Base automatically changed from master to main January 23, 2021 01:00
@anGie44 anGie44 self-assigned this Feb 3, 2021
Copy link
Contributor

@anGie44 anGie44 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Look great overall @bill-rich ! Just a couple quick comments for review.

output of acceptance tests in commercial:

--- FAIL: TestAccAWSLB_IPv6SubnetMapping (41.16s) -- only in TC, see note above about adding dependency in test config

--- SKIP: TestAccDataSourceAWSLB_outpost (1.36s)
--- PASS: TestAccAWSLBCookieStickinessPolicy_disappears_ELB (38.35s)
--- PASS: TestAccAWSLBCookieStickinessPolicy_disappears (40.81s)
--- PASS: TestAccAWSLBCookieStickinessPolicy_basic (47.57s)
--- PASS: TestAccAWSLBListenerRule_redirect (175.37s)
--- PASS: TestAccDataSourceAWSLBListener_basic (181.22s)
--- PASS: TestAccDataSourceAWSLB_basic (183.23s)
--- PASS: TestAccDataSourceAWSLB_BackwardsCompatibility (186.26s)
--- PASS: TestAccDataSourceAWSLBListener_DefaultAction_Forward (191.47s)
--- PASS: TestAccAWSLBListenerRule_conditionHttpHeader_invalid (5.95s)
--- PASS: TestAccAWSLBListenerRule_fixedResponse (195.73s)
--- PASS: TestAccAWSLBListenerRule_basic (197.33s)
--- PASS: TestAccAWSLBListenerRule_cognito (199.61s)
--- PASS: TestAccDataSourceAWSLBListener_BackwardsCompatibility (202.44s)
--- PASS: TestAccAWSLBListenerRule_changeListenerRuleArnForcesNew (227.43s)
--- PASS: TestAccDataSourceAWSLBTargetGroup_BackwardsCompatibility (228.93s)
--- PASS: TestAccAWSLBListenerRule_Action_Order_Recreates (183.16s)
--- PASS: TestAccAWSLBListenerRule_conditionAttributesCount (56.67s)
--- PASS: TestAccDataSourceAWSLBListener_https (236.75s)
--- PASS: TestAccAWSLBListenerRule_updateRulePriority (237.10s)
--- PASS: TestAccAWSLBListenerRule_updateFixedResponse (240.94s)
--- PASS: TestAccAWSLBListenerRule_Action_Order (202.92s)
--- PASS: TestAccAWSLBListenerRule_forwardWeighted (245.31s)
--- PASS: TestAccAWSLBListenerRule_oidc (215.58s)
--- PASS: TestAccAWSLBListenerRule_BackwardsCompatibility (254.71s)
--- PASS: TestAccAWSLBListenerRule_priority (325.92s)
--- PASS: TestAccAWSLBListener_LoadBalancerArn_GatewayLoadBalancer (110.45s)
--- PASS: TestAccAWSLBListenerRule_conditionHttpHeader (172.77s)
--- PASS: TestAccAWSLBListenerRule_conditionHostHeader (181.96s)
--- PASS: TestAccAWSLBListenerRule_conditionPathPattern (175.38s)
--- PASS: TestAccAWSLBListenerRule_conditionQueryString (176.51s)
--- PASS: TestAccAWSLBListenerRule_conditionSourceIp (177.78s)
--- PASS: TestAccAWSLBListenerRule_conditionHttpRequestMethod (187.24s)
--- PASS: TestAccAWSLBListenerRule_conditionMultiple (175.84s)
--- PASS: TestAccAWSLBListener_basic (164.62s)
--- PASS: TestAccAWSLBSSLNegotiationPolicy_basic (35.90s)
--- PASS: TestAccAWSLBSSLNegotiationPolicy_disappears (35.84s)
--- PASS: TestAccAWSLBListener_BackwardsCompatibility (190.14s)
--- PASS: TestAccAWSLBListenerRule_conditionUpdateMixed (226.44s)
--- PASS: TestAccAWSLBListener_cognito (179.00s)
--- PASS: TestAccAWSLBListener_redirect (189.01s)
--- PASS: TestAccAWSLBListener_https (199.32s)
--- PASS: TestAccAWSLBListener_fixedResponse (182.63s)
--- PASS: TestAccAWSLBListenerRule_conditionUpdateMultiple (210.00s)
--- PASS: TestAccAWSLBTargetGroup_basic (34.97s)
--- PASS: TestAccAWSLBListener_forwardWeighted (220.85s)
--- PASS: TestAccAWSLBTargetGroupAttachment_lambda (52.63s)
--- PASS: TestAccAWSLBTargetGroup_withoutHealthcheck (30.52s)
--- PASS: TestAccAWSLBTargetGroup_basicUdp (33.16s)
--- PASS: TestAccAWSLBTargetGroup_Protocol_Tls (31.78s)
--- PASS: TestAccAWSLBTargetGroup_Protocol_Geneve (36.69s)
--- PASS: TestAccAWSLBTargetGroupAttachment_Port (96.04s)
--- PASS: TestAccAWSLBTargetGroupAttachment_disappears (100.71s)
--- PASS: TestAccAWSLBTargetGroupAttachment_BackwardsCompatibility (98.05s)
--- PASS: TestAccAWSLBTargetGroupAttachment_basic (109.32s)
--- PASS: TestAccAWSLBTargetGroup_BackwardsCompatibility (40.34s)
--- PASS: TestAccAWSLBTargetGroup_namePrefix (42.84s)
--- PASS: TestAccAWSLBTargetGroupAttachment_ipAddress (105.64s)
--- PASS: TestAccAWSLBTargetGroup_generatedName (47.48s)
--- PASS: TestAccAWSLBTargetGroup_Protocol_Tcp_HealthCheck_Protocol (79.12s)
--- PASS: TestAccAWSLBTargetGroup_networkLB_TargetGroupWithProxy (81.87s)
--- PASS: TestAccAWSLBListener_oidc (194.07s)
--- PASS: TestAccAWSLBTargetGroup_TCP_HTTPHealthCheck (82.67s)
--- PASS: TestAccAWSLBListener_DefaultAction_Order (181.44s)
--- PASS: TestAccAWSLBListener_DefaultAction_Order_Recreates (189.55s)
--- PASS: TestLBCloudwatchSuffixFromARN (0.00s)
--- PASS: TestAccAWSLBTargetGroup_defaults_application (60.75s)
--- PASS: TestAccAWSLBTargetGroup_changeNameForceNew (99.22s)
--- PASS: TestAccAWSLBListener_basicUdp (333.20s)
--- PASS: TestAccAWSLBTargetGroup_changeProtocolForceNew (101.23s)
--- PASS: TestAccAWSLBTargetGroup_networkLB_TargetGroup (137.42s)
--- SKIP: TestAccAWSLB_ALB_outpost (1.46s)
--- PASS: TestAccAWSLBTargetGroup_changePortForceNew (101.96s)
--- PASS: TestAccAWSLBTargetGroup_stickinessDefaultALB (58.14s)
--- PASS: TestAccAWSLBTargetGroup_enableHealthCheck (101.80s)
--- PASS: TestAccAWSLBTargetGroup_defaults_network (79.97s)
--- PASS: TestAccAWSLBTargetGroup_changeVpcForceNew (107.45s)
--- PASS: TestAccAWSLBTargetGroup_updateHealthCheck (106.15s)
--- PASS: TestAccAWSLBTargetGroup_stickinessInvalidNLB (66.67s)
--- PASS: TestAccAWSLBListener_Protocol_Tls (355.61s)
--- PASS: TestAccAWSLBTargetGroup_stickinessValidALB (89.58s)
--- PASS: TestAccAWSLBTargetGroup_stickinessInvalidALB (77.33s)
--- PASS: TestAccAWSLBTargetGroup_tags (135.67s)
--- PASS: TestAccAWSLBTargetGroup_updateSticknessEnabled (124.42s)
--- PASS: TestAccAWSLBTargetGroup_stickinessDefaultNLB (114.36s)
--- PASS: TestAccAWSLBTargetGroup_stickinessValidNLB (129.98s)
--- PASS: TestAccAWSLB_LoadBalancerType_Gateway (121.30s)
--- PASS: TestAccAWSLB_LoadBalancerType_Gateway_EnableCrossZoneLoadBalancing (151.25s)
--- PASS: TestAccAWSLB_ALB_basic (193.09s)
--- PASS: TestAccAWSLB_generatesNameForZeroValue (175.91s)
--- PASS: TestAccAWSLB_BackwardsCompatibility (183.95s)
--- PASS: TestAccAWSLB_generatedName (189.73s)
--- PASS: TestAccAWSLB_namePrefix (187.20s)
--- PASS: TestAccAWSLB_NLB_basic (230.71s)
--- PASS: TestAccAWSLB_noSecurityGroup (179.64s)
--- PASS: TestAccAWSLB_networkLoadbalancerEIP (236.22s)
--- PASS: TestAccAWSLB_updatedSecurityGroups (220.88s)
--- PASS: TestAccAWSLB_updatedIpAddressType (229.93s)
--- PASS: TestAccAWSLB_updatedSubnets (239.15s)
--- PASS: TestAccAWSLB_applicationLoadBalancer_updateHttp2 (257.96s)
--- PASS: TestAccAWSLB_tags (273.31s)
--- PASS: TestAccAWSLB_applicationLoadBalancer_updateDropInvalidHeaderFields (262.68s)
--- PASS: TestAccAWSLB_applicationLoadBalancer_updateDeletionProtection (271.29s)
--- PASS: TestAccAWSLB_networkLoadbalancer_updateCrossZone (326.84s)
--- PASS: TestAccAWSLB_ALB_AccessLogs_Prefix (263.94s)
--- PASS: TestAccAWSLB_ALB_AccessLogs (306.70s)
--- PASS: TestAccAWSLB_NLB_privateipv4address (390.01s)
--- PASS: TestAccAWSLB_networkLoadbalancer_subnet_change (215.19s)
--- PASS: TestAccAWSLB_NLB_AccessLogs_Prefix (317.14s)
--- PASS: TestAccAWSLB_NLB_AccessLogs (360.37s)

website/docs/r/lb.html.markdown Outdated Show resolved Hide resolved
aws/resource_aws_lb_test.go Outdated Show resolved Hide resolved
aws/resource_aws_lb_test.go Show resolved Hide resolved
resourceName := "aws_lb.test"

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t); testAccPreCheckElbv2GatewayLoadBalancer(t) },
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think this last precheck can be safely removed since this tests a network LB but i'll double check 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK yep ran the tests in us-gov-west-1 in case and the tests pass w/o the gateway precheck

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bill-rich just one last note to update this to

Suggested change
PreCheck: func() { testAccPreCheck(t); testAccPreCheckElbv2GatewayLoadBalancer(t) },
PreCheck: func() { testAccPreCheck(t) },

since we can run these in alternate regions/gov cloud afict. unless you've experienced something different 😃

@ghost ghost added the documentation Introduces or discusses updates to documentation. label Feb 4, 2021
@bill-rich bill-rich merged commit 8076567 into main Feb 4, 2021
@bill-rich bill-rich deleted the f_support_ipv6_lb_subnet_mapping branch February 4, 2021 21:54
@github-actions github-actions bot added this to the v3.27.0 milestone Feb 4, 2021
@ghost
Copy link

ghost commented Feb 5, 2021

This has been released in version 3.27.0 of the Terraform AWS provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading.

For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template for triage. Thanks!

@ghost
Copy link

ghost commented Mar 7, 2021

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. Thanks!

@ghost ghost locked as resolved and limited conversation to collaborators Mar 7, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Introduces or discusses updates to documentation. service/elbv2 Issues and PRs that pertain to the elbv2 service. size/M Managed by automation to categorize the size of a PR. tests PRs: expanded test coverage. Issues: expanded coverage, enhancements to test infrastructure.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

subnet_mapping block under aws_lb is missing the ipv6_address option
2 participants