Thanks to visit codestin.com
Credit goes to github.com

Skip to content

CloudFormation v2 Engine: Base Support for Global Macros #12761

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 4 commits into from
Jun 19, 2025

Conversation

MEPalma
Copy link
Contributor

@MEPalma MEPalma commented Jun 16, 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 does not support global macros.

Changes

  • added integrations to v1 utils for the execution of global macros
  • resolved issues with the computation of stack parameters, which resulted in sometimes malformed parameter objects during the transformation step (see compatibility requirements with v1 utils)
  • resolved an issue with the normalization of transform parameters, which did not support some definition format
  • added change set update test using macros (see in-code limitations)
  • updated the CFNV2 test annotations

Future work

  • unblock v1 tests by porting the create stack provider logic to use the v2 engine
  • investigate some issue for which in our test setup a delete request for the template carrying the macro is registered before later events
  • add further change set lifecycle tests involving global transformations

@MEPalma MEPalma added this to the 4.6 milestone Jun 16, 2025
@MEPalma MEPalma requested a review from simonrw June 16, 2025 11:42
@MEPalma MEPalma self-assigned this Jun 16, 2025
@MEPalma MEPalma added the semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases label Jun 16, 2025
Copy link

Test Results - Preflight, Unit

21 621 tests  ±0   19 964 ✅ ±0   6m 19s ⏱️ +7s
     1 suites ±0    1 657 💤 ±0 
     1 files   ±0        0 ❌ ±0 

Results for commit 398bece. ± Comparison against base commit df9ebe9.

Copy link

Test Results (amd64) - Acceptance

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

Results for commit 398bece. ± Comparison against base commit df9ebe9.

Copy link

LocalStack Community integration with Pro

  2 files  ±    0    2 suites  ±0   21m 29s ⏱️ - 1h 22m 2s
886 tests  - 3 988  323 ✅  - 3 774  563 💤  - 214  0 ❌ ±0 
888 runs   - 3 988  323 ✅  - 3 774  565 💤  - 214  0 ❌ ±0 

Results for commit 398bece. ± Comparison against base commit df9ebe9.

This pull request removes 3989 and adds 1 tests. Note that renamed tests count towards both.
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_lambda_dynamodb
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_opensearch_crud
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_search_books
tests.aws.scenario.bookstore.test_bookstore.TestBookstoreApplication ‑ test_setup
tests.aws.scenario.kinesis_firehose.test_kinesis_firehose.TestKinesisFirehoseScenario ‑ test_kinesis_firehose_s3
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_destination_sns
tests.aws.scenario.lambda_destination.test_lambda_destination_scenario.TestLambdaDestinationScenario ‑ test_infra
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_prefill_dynamodb_table
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input0-SUCCEEDED]
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input1-SUCCEEDED]
…
tests.aws.services.cloudformation.v2.test_change_set_global_macros.TestChangeSetGlobalMacros ‑ test_base_global_macro
This pull request removes 211 skipped tests and adds 1 skipped test. Note that renamed tests count towards both.
tests.aws.scenario.kinesis_firehose.test_kinesis_firehose.TestKinesisFirehoseScenario ‑ test_kinesis_firehose_s3
tests.aws.scenario.loan_broker.test_loan_broker.TestLoanBrokerScenario ‑ test_stepfunctions_input_recipient_list[step_function_input4-FAILED]
tests.aws.scenario.mythical_mysfits.test_mythical_misfits.TestMythicalMisfitsScenario ‑ test_deployed_infra_state
tests.aws.scenario.mythical_mysfits.test_mythical_misfits.TestMythicalMisfitsScenario ‑ test_populate_data
tests.aws.scenario.mythical_mysfits.test_mythical_misfits.TestMythicalMisfitsScenario ‑ test_user_clicks_are_stored
tests.aws.services.apigateway.test_apigateway_api.TestApiGatewayApiRestApi ‑ test_get_api_case_insensitive
tests.aws.services.apigateway.test_apigateway_api.TestApigatewayIntegration ‑ test_put_integration_request_parameter_bool_type
tests.aws.services.apigateway.test_apigateway_basic.TestAPIGateway ‑ test_api_gateway_authorizer_crud
tests.aws.services.apigateway.test_apigateway_basic.TestAPIGateway ‑ test_api_gateway_http_integration_with_path_request_parameter
tests.aws.services.apigateway.test_apigateway_basic.TestAPIGateway ‑ test_api_gateway_lambda_proxy_integration[/lambda/foo1]
…
tests.aws.services.cloudformation.v2.test_change_set_global_macros.TestChangeSetGlobalMacros ‑ test_base_global_macro

Copy link

Test Results (amd64) - Integration, Bootstrap

  5 files    5 suites   34m 28s ⏱️
910 tests 348 ✅ 562 💤 0 ❌
916 runs  348 ✅ 568 💤 0 ❌

Results for commit 398bece.

Copy link

Test Results - Alternative Providers

988 tests   621 ✅  34m 31s ⏱️
  4 suites  367 💤
  4 files      0 ❌

Results for commit 398bece.

Copy link
Contributor

@simonrw simonrw left a comment

Choose a reason for hiding this comment

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

Amazing stuff, thanks for adding this!

@MEPalma MEPalma merged commit 3b2f334 into master Jun 19, 2025
43 checks passed
@MEPalma MEPalma deleted the MEP-CFN-global_macros branch June 19, 2025 15:50
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