Skip to content

CloudFormation v2 Engine: Base Support for Fn::Base64 #12700

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 23 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::Base64.

Changes

  • Added change set modeling, description, and execution support for Fn::Base64
  • Added an initial set of boundary tests for template updates concerning the use of Fn::Base64
  • Unblocked 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
Copy link

github-actions bot commented Jun 2, 2025

Test Results - Preflight, Unit

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

Results for commit bd846d9. ± Comparison against base commit c4c7d90.

♻️ 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 bd846d9. ± Comparison against base commit c4c7d90.

♻️ 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   21m 47s ⏱️
885 tests 319 ✅ 566 💤 0 ❌
887 runs  319 ✅ 568 💤 0 ❌

Results for commit bd846d9.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jun 2, 2025

Test Results - Alternative Providers

986 tests   568 ✅  22m 34s ⏱️
  4 suites  418 💤
  4 files      0 ❌

Results for commit bd846d9.

♻️ 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 21m 4s ⏱️
5 225 tests 4 297 ✅ 928 💤 0 ❌
5 231 runs  4 297 ✅ 934 💤 0 ❌

Results for commit bd846d9.

♻️ This comment has been updated with latest results.

@@ -109,7 +109,6 @@ def test_and_or_functions(
bucket_names = [b["Name"] for b in buckets["Buckets"]]
assert (bucket_name in bucket_names) == expected_bucket_created

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

Choose a reason for hiding this comment

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

🎉

if not isinstance(string, str):
raise RuntimeError(f"Invalid valueToEncode for Fn::Base64: '{string}'")

string_bytes = string.encode("ascii")
Copy link
Contributor

Choose a reason for hiding this comment

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

question: is the string guaranteed to be ascii?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Indeed, thanks, this should have just been ported from v1, I'll change it accordingly

Base automatically changed from MEP-CFN-fn_getazs to master June 3, 2025 15:33
@MEPalma MEPalma merged commit 8b3dcdd into master Jun 3, 2025
57 checks passed
@MEPalma MEPalma deleted the MEP-CFN-fn_base64 branch June 3, 2025 17:34
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