From 97c9e6472b3677aadf7615daba4043599d6bbdae Mon Sep 17 00:00:00 2001 From: "patchback[bot]" <45432694+patchback[bot]@users.noreply.github.com> Date: Tue, 4 Jul 2023 11:43:02 +0000 Subject: [PATCH] ec2_vpc_nat_gateway - changes to no allocate eip address when connectivity_type=private (#1632) (#1641) [PR #1632/afe9ccb5 backport][stable-6] ec2_vpc_nat_gateway - changes to no allocate eip address when connectivity_type=private This is a backport of PR #1632 as merged into main (afe9ccb). SUMMARY Fixes #1618 ISSUE TYPE Bugfix Pull Request COMPONENT NAME plugins/modules/ec2_vpc_nat_gateway.py ADDITIONAL INFORMATION Reviewed-by: Alina Buzachis --- ...s-to-no-allocate-eip-when-connectivity_type=private.yml | 2 ++ plugins/modules/ec2_vpc_nat_gateway.py | 7 ++++--- .../integration/targets/ec2_vpc_nat_gateway/tasks/main.yml | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 changelogs/fragments/1632-changes-to-no-allocate-eip-when-connectivity_type=private.yml diff --git a/changelogs/fragments/1632-changes-to-no-allocate-eip-when-connectivity_type=private.yml b/changelogs/fragments/1632-changes-to-no-allocate-eip-when-connectivity_type=private.yml new file mode 100644 index 00000000000..4b820a3498f --- /dev/null +++ b/changelogs/fragments/1632-changes-to-no-allocate-eip-when-connectivity_type=private.yml @@ -0,0 +1,2 @@ +bugfixes: +- ec2_vpc_nat_gateway - fixes to nat gateway so that when the user creates a private NAT gateway, an Elastic IP address should not be allocated. The module had inncorrectly always allocate elastic IP address when creating private nat gateway (https://github.com/ansible-collections/amazon.aws/pull/1632). \ No newline at end of file diff --git a/plugins/modules/ec2_vpc_nat_gateway.py b/plugins/modules/ec2_vpc_nat_gateway.py index 9c0229906ac..34f4fde632d 100644 --- a/plugins/modules/ec2_vpc_nat_gateway.py +++ b/plugins/modules/ec2_vpc_nat_gateway.py @@ -736,10 +736,11 @@ def pre_create( msg = f"NAT Gateway {existing_gateways[0]['nat_gateway_id']} already exists in subnet_id {subnet_id}" return changed, msg, results else: - changed, msg, allocation_id = allocate_eip_address(client, module) + if connectivity_type == "public": + changed, msg, allocation_id = allocate_eip_address(client, module) - if not changed: - return changed, msg, dict() + if not changed: + return changed, msg, dict() elif eip_address or allocation_id: if eip_address and not allocation_id: diff --git a/tests/integration/targets/ec2_vpc_nat_gateway/tasks/main.yml b/tests/integration/targets/ec2_vpc_nat_gateway/tasks/main.yml index 501cccaf9b0..4007d2014a8 100644 --- a/tests/integration/targets/ec2_vpc_nat_gateway/tasks/main.yml +++ b/tests/integration/targets/ec2_vpc_nat_gateway/tasks/main.yml @@ -919,6 +919,7 @@ - create_ngw.changed - create_ngw.connectivity_type == 'private' - '"create_time" in create_ngw' + - '"allocation_id" not in create_ngw.nat_gateway_addresses[0]' - name: 'set facts: NAT gateway ID' set_fact: