Skip to content

CloudFormation v2 Engine: Base Support for Fn::GetAZs #12699

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

Merged
merged 21 commits into from
Jun 3, 2025
Merged

Conversation

MEPalma
Copy link
Contributor

@MEPalma MEPalma commented Jun 2, 2025

Motivation

The introduction of the CloudFormation v2 engine laid the foundation for a redesigned engine capable of accurately determining update requirements between CloudFormation deployments, while also enabling parallel execution during updates. However, the current implementation offers no support for Fn::GetAZs.

Changes

  • Added change set modeling, description, and execution support for Fn::GetAZs
  • Unblocked or updated skip annotation for related v1 tests

@MEPalma MEPalma added this to the 4.5 milestone Jun 2, 2025
@MEPalma MEPalma self-assigned this Jun 2, 2025
@MEPalma MEPalma added the semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases label Jun 2, 2025
@MEPalma MEPalma requested a review from simonrw as a code owner June 2, 2025 14:15
Copy link

github-actions bot commented Jun 2, 2025

Test Results - Preflight, Unit

21 595 tests  ±0   19 940 ✅ ±0   6m 18s ⏱️ +4s
     1 suites ±0    1 655 💤 ±0 
     1 files   ±0        0 ❌ ±0 

Results for commit 82ca923. ± Comparison against base commit 6d23766.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

Test Results (amd64) - Acceptance

7 tests  ±0   5 ✅ ±0   3m 8s ⏱️ +2s
1 suites ±0   2 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit 82ca923. ± Comparison against base commit 6d23766.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

Test Results - Alternative Providers

983 tests   564 ✅  22m 33s ⏱️
  4 suites  419 💤
  4 files      0 ❌

Results for commit 82ca923.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

LocalStack Community integration with Pro

  2 files    2 suites   22m 0s ⏱️
882 tests 319 ✅ 563 💤 0 ❌
884 runs  319 ✅ 565 💤 0 ❌

Results for commit 82ca923.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

Test Results (amd64) - Integration, Bootstrap

    5 files      5 suites   2h 22m 29s ⏱️
5 222 tests 4 297 ✅ 925 💤 0 ❌
5 228 runs  4 297 ✅ 931 💤 0 ❌

Results for commit 82ca923.

♻️ This comment has been updated with latest results.

@@ -109,7 +109,6 @@ def test_cfn_with_multiple_route_tables(deploy_cfn_template, aws_client):
assert len(resp["RouteTables"]) == 4


@pytest.mark.skip(reason="CFNV2:Fn::Select, CFNV2:Fn::GatAZs")
Copy link
Contributor

Choose a reason for hiding this comment

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

🎉

@@ -165,7 +164,6 @@ def test_dhcp_options(aws_client, deploy_cfn_template, snapshot):
snapshot.match("description", response["DhcpOptions"][0])


@pytest.mark.skip(reason="CFNV2:Fn::Select, CFNV2:Fn::GatAZs")
Copy link
Contributor

Choose a reason for hiding this comment

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

🎉

@@ -197,7 +197,6 @@ def test_cidr_function(self, deploy_cfn_template):

assert deployed.outputs["Address"] == "10.0.0.0/24"

@pytest.mark.skip(reason="CFNV2:Fn::GetAZs")
Copy link
Contributor

Choose a reason for hiding this comment

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

🎉

account_id = self._change_set.account_id
ec2_client = connect_to(aws_access_key_id=account_id, region_name=region).ec2
try:
get_availability_zones_result: DescribeAvailabilityZonesResult = (
Copy link
Contributor

Choose a reason for hiding this comment

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

nit

Suggested change
get_availability_zones_result: DescribeAvailabilityZonesResult = (
describe_availability_zones_result: DescribeAvailabilityZonesResult = (

Base automatically changed from MEP-CFN-fn_split to master June 3, 2025 14:17
@MEPalma MEPalma merged commit c4c7d90 into master Jun 3, 2025
57 checks passed
@MEPalma MEPalma deleted the MEP-CFN-fn_getazs branch June 3, 2025 15:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants