pulumi-awsx icon indicating copy to clipboard operation
pulumi-awsx copied to clipboard

Cant migrate vpc from `awsx.classic.ec2.Vpc` to `awsx.ec2.Vpc` without recreating vpc

Open swwu opened this issue 10 months ago • 2 comments

What happened?

Trying to migrate from awsx.classic.ec2.Vpc to awsx.ec2.Vpc causes the VPC (and consequently, many of its child resources, such as RDS) to be destroyed and recreated.

Currently can't find a way to do this upgrade via tagging or similar that doesn't involve destroying and recreating the VPC.

Example

  1. Create any awsx.classic.ec2.Vpc.
  2. Change it to awsx.ec2.Vpc.
  3. Observe that it deletes the VPC and creates a new one.

Output of pulumi about

CLI Version 3.63.0 Go Version go1.20.3 Go Compiler gc

Plugins NAME VERSION aws 6.22.1 aws 6.22.1 aws 5.43.0 aws 5.43.0 awsx 1.0.6 awsx 1.0.6 command 0.5.2 command 0.5.2 docker 3.6.1 docker 3.6.1 nodejs unknown random 4.15.1 random 4.15.1

Host OS darwin Version 12.5 Arch arm64

This project is written in nodejs: executable='/Users/swwu/.nvm/versions/node/v20.4.0/bin/node' version='v20.4.0'

Current Stack: scanner-inc/log-storage/prod-use2-1

...

Found no pending operations associated with prod-use2-1

Backend Name pulumi.com URL https://app.pulumi.com/swwu User swwu Organizations swwu, scanner-inc

Dependencies: NAME VERSION @aws-sdk/client-ecs 3.514.0 @pulumi/aws 6.22.1 @pulumi/awsx 1.0.6 @pulumi/command 0.5.2 @pulumi/pulumi 3.105.0 @pulumi/random 4.15.1 @scnr/pulumi_shared 0.0.1 @slack/webhook 6.1.0 @types/node 14.18.63

Additional context

We are attempting to migrate to pulumi/awsx 2.7, where it appears awsx classic is now deprecated.

Our primary database is an Aurora RDS instance inside a awsx.classic.ec2.Vpc, so we would obviously prefer that it not be destroyed and recreated when we upgrade, since it contains a bunch of important customer data. (We also have a large number of individual deployments so we'd prefer not to manually remove/replace the RDS cluster in the deployment by hand on all of them.)

This issue https://github.com/pulumi/pulumi-awsx/issues/1020 appears to be about the same problem; however, its solution ("use classic") doesn't seem to apply any more because classic is deprecated.

Contributing

Vote on this issue by adding a 👍 reaction. To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

swwu avatar Apr 12 '24 19:04 swwu

Thanks for reporting this @swwu definitely sounds very disappointing; our team will be taking a look when we have time available. If anyone is affected by this please upvote to help us prioritize.

t0yv0 avatar Apr 15 '24 13:04 t0yv0

I believe this is, unfortunately, expected. The 1.0 launch blog mentions:

Refactor to replace the classic components with the new top-level components. This may require additional code changes and resource re-creation.

Another instance where https://github.com/pulumi/pulumi/issues/15633 would be very helpful.

mikhailshilkov avatar Apr 17 '24 10:04 mikhailshilkov