Skip to content

When a service registered in tfstate no longer exists, it results in an error during terraform plan #267

@taxintt

Description

@taxintt

Problem

After creating mackerel_service and mackerel_role by using Terraform, if these resources are manually deleted, terraform plan will fail to execute.

resource "mackerel_service" "app" {
  name = "app"
}

resource "mackerel_role" "bar" {
  service = mackerel_service.app.name
  name    = "bar"
}
# the case which service is manually deleted
Planning failed. Terraform encountered an error while generating this plan.

╷
│ Error: the name 'app' does not match any service in mackerel.io
│ 
│   with mackerel_service.app,
│   on mackerel.tf line 1, in resource "mackerel_service" "app":
│    1: resource "mackerel_service" "app" {
│ 
╵
make: *** [apply] Error 1

# the case which role is manually deleted
Planning failed. Terraform encountered an error while generating this plan.

╷
│ Error: the name 'bar' does not match any role in mackerel.io
│ 
│   with mackerel_role.bar,
│   on mackerel.tf line 5, in resource "mackerel_role" "bar":
│    5: resource "mackerel_role" "bar" {
│ 
╵
make: *** [apply] Error 1

I don't verifiy this error for other resources, but it is possible that same error may occur.

The behavior of trying to re-create a resource when it does not exist as defined in Terraform have to be implemented on the Terraform provider side.
Recreate a resource in a case of manual deletion - Terraform Providers / Plugin Development - HashiCorp Discuss

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions