cloudposse / terraform-aws-ec2-client-vpn

https://cloudposse.com/accelerate
Apache License 2.0
45 stars 28 forks source link

Appending routes cause recreation of routes and rules #30

Open nitrocode opened 2 years ago

nitrocode commented 2 years ago

Have a question? Please checkout our Slack Community or visit our Slack Archive.

Slack Community

Describe the Feature

Appending routes cause recreation of routes leading to failed terraform applies due to many unnecessary routing changes.

If we use a map for both var.authorization_rules and var.additional_routes, then we can use a for_each instead of count for auth rules and vpn routes and make the key something like {stage}-{cidr} or similar

https://github.com/cloudposse/terraform-aws-ec2-client-vpn/blob/0e4f0d9dc660a945a6fafc84284d447e3104ca06/main.tf#L223

https://github.com/cloudposse/terraform-aws-ec2-client-vpn/blob/0e4f0d9dc660a945a6fafc84284d447e3104ca06/main.tf#L233

then we would be able to append routes and rules, avoid unnecessary deletions, and reduce the likelihood of the following error.

│ Error: error deleting client VPN route "cvpn-endpoint-snip,subnet-snip,10.66.0.0/15": timeout while waiting for resource to be gone (last state: 'deleting', timeout: 1m0s)

│ Error: error creating client VPN route "cvpn-endpoint-snip,subnet-snip,10.68.0.0/15": ConcurrentMutationLimitExceeded: Cannot initiate another change for this endpoint at this time. Please try again later.