I have been able to reproduce this issue and tried with `
lifecycle { prevent_destroy = true }` as well as `lifecycle { create_before_destroy = true }`. Nevertheless, it looks like the Terraform plan will refuse to create a new image if it can't destroy the previous one:
```
Resource google_compute_image.arnauc-famimage has lifecycle.prevent_destroy set, but the plan calls for this resource to be destroyed. To avoid this error and continue with the plan, either disable lifecycle.prevent_destroy or reduce the scope of the plan using the -target flag.
```
Therefore, other than the workaround that you had found, you could add the new images as independent resources in your `
main.tf` file with a version suffix on both the second label for the resource and the "name" variable within it, without removing or replacing the previous ones, so they can be created without affecting the previous ones in your project. For example:
```
resource "google_compute_image" "our-custom-image-v8" {
name = "our-custom-image-v8"
family = "our-custom-image-family"
....
}
resource "google compute_image" "our-custom-image-v7" {
name = "our-custom-image-v7"
family = "our-custom-image-family"
...
}
```