8000 Cloud Formation: [POC] Modeling Stack Operations and Evaluating ChangeSet Descriptions by MEPalma · Pull Request #12355 · localstack/localstack · GitHub
[go: up one dir, main page]

Skip to content

Cloud Formation: [POC] Modeling Stack Operations and Evaluating ChangeSet Descriptions #12355

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
Mar 12, 2025

Conversation

MEPalma
Copy link
Contributor
@MEPalma MEPalma commented Mar 7, 2025

Motivation

In an effort to address the current limitations in the handling of stack updates and the ChangeSet workflow (describe, update, etc.), as well as other workflows such as stack creation, deletion, and rollback, this pull request introduces a new design approach to representing operations on stack templates. This design enables:

  • Implementation of updates to stack templates, and creation/deletion operations.
  • Logic that computes update graphs for different template versions.
  • A visitor pattern for extension logic to operate on these update graphs.
  • The ability to derive detailed ChangeSet descriptions via the new design model.

Changes

  • ChangeSetModel: A POC class that, given one or two CloudFormation templates, produces an update graph. This graph can represent both template versions, and it can be acted upon via a visitor mechanism.
  • ChangeSetModelVisitor: A POC abstract class to navigate update graphs through the visitor pattern, enabling extensions and custom operations on the graph.
  • ChangeSetModelDescriber: A POC class extending ChangeSetModelVisitor to traverse update graphs and compute the outputs necessary for the ChangeSetDescribe operations.

@MEPalma MEPalma added the semver: minor Non-breaking changes which can be included in minor releases, but not in patch releases label Mar 7, 2025
@MEPalma MEPalma added this to the 4.3 milestone Mar 7, 2025
@MEPalma MEPalma self-assigned this Mar 7, 2025
Copy link
github-actions bot commented Mar 7, 2025

LocalStack Community integration with Pro

  2 files    2 suites   20m 8s ⏱️
422 tests 310 ✅ 112 💤 0 ❌
424 runs  310 ✅ 114 💤 0 ❌

Results for commit 4333eac.

♻️ This comment has been updated with latest results.

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.

Thanks @MEPalma for introducing this structure, this will make operating on CFn templates much easier in the future!

@MEPalma MEPalma merged commit c732f51 into master Mar 12, 2025
31 checks passed
@MEPalma MEPalma deleted the MEP-CFN-POC-change_set_update_modeler branch March 12, 2025 12:04
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
0