How to recreate a google compute engine vm from one project in another project?
I have created a VM in project A in GCE. I want to create a new instance based on this VM in another project B.
I reckon I can spawn a new instance based on the a disk snapshot. However I cannot find any option to transfer such a snapshot across project.
My questions are:
1) how can I transfer a disk snapshot across projects in Google Cloud Platform projects?
2) Is there a better way to achieve this other than using a docker image?
Since I cannot turn off the source VM because it is currently in use in a production environment, I have to use the following steps to create a mirror VM in another project:
1) Create a snapshot of the boot disk of the source VM
2) Create a disk based on this snapshot in the target project
gcloud compute disks create vm-prod-disk --source-snapshot \
https://www.googleapis.com/compute/v1/projects/<source-\
project>/global/snapshots/<source-vm-snapshot> --project target-project
3) Create a VM based on the new disk from step 2
gcloud compute instances create vm-prod-duplicate \
--project target-project --disk name=vm-prod-disk,boot=yes
You first have to create an image in your old-project
gcloud compute images create "my-image" --source-disk "my-disk"
Now, you can create a machine in another project with it, since images are global resources:
gcloud compute instances create "my-instance" \
--image "my-image" \
--image-project "new-project"
There are also other solutions.