Skip to content
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

feat(lib): add resource move functionality #3152

Merged
merged 23 commits into from
Oct 13, 2023
Merged

feat(lib): add resource move functionality #3152

merged 23 commits into from
Oct 13, 2023

Conversation

Maed223
Copy link
Contributor

@Maed223 Maed223 commented Sep 28, 2023

Related issue

Fixes #1292
Fixes #219

Description

PR adds support for moved block functionality– though only in function not form.

Instead of directly porting over the form of Terraform’s moved block into CDKTF, use case specific functions that leverage the functionality of the moved block have been created. Additionally, instead of using a direct reference, or directly specifying the resource Ids to move from/to, a resource targeting system is used to more simply mark and later identify the location of the move.

New Functions On TerraformResource

addMoveTarget(moveTarget: string):

Adds a string moveTarget to the resource it is called upon.

new S3Bucket(this, "test-bucket", {
  bucket: "test-move-bucket-name",
}).addMoveTarget("move-s3");

This moveTarget can then be accessed in any place within the stack, including nested Constructs.

moveTo(moveTarget: string, index?: string | number):

Performs the move operation from the resource it is being called upon to the moveTarget specified

new S3Bucket(this, "test-bucket-rename", {
      bucket: "test-move-bucket-name",
}).moveTo("move-s3")

Example Output

In Typescript

Screenshot 2023-10-04 at 3 14 40 PM

In Python

Screenshot 2023-10-11 at 12 30 57 PM

Other Notes

I've forgone including integration tests as I believe unit testing should be sufficient (see additions to resource.test.ts). Seems to me that any issue not caught by them would be a problem on the side of Terraform.

@vercel
Copy link

vercel bot commented Oct 2, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
terraform-cdk ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 4, 2023 2:13pm
terraform-cdk-redirects ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 4, 2023 2:13pm

Copy link
Contributor

I'm going to lock this pull request because it has been closed for 30 days. This helps our maintainers find and focus on the active issues. If you've found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 13, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Resource Refactoring - Moved State Improve Experience of Renaming / Moving Constructs
5 participants