вторник, 1 декабря 2020 г.

Terraform: Re-add the provider configuration to destroy

 Вот такого рода ошибка на terraform destroy:

Error: Provider configuration not presentTo work with module.monitoring-ec2.aws_instance.this its original provider
configuration at
module.monitoring-ec2.provider["registry.terraform.io/hashicorp/aws"] is
required, but it has been removed. This occurs when a provider configuration
is removed while objects created by that provider still exist in the state.
Re-add the provider configuration to destroy
module.monitoring-ec2.aws_instance.this, after which you can remove the
provider configuration again

Такое получается при условии вызова модуля из другого модуля и при этом оба модуля имеют свою конфигурационную секцию типа такой :

provider "aws" { region=var.region}

И потом, после деплоя и времени автор понимает, что надо убрать в дочернем модуле секцию, которая дублируется и в родительском модуле уже все равно есть. Убирает и .... получает вот эту ситуацию.

В файле состояния это выглядит вот так:

в блоке описания состояния дочернего модуля будет вот такая строка:

 Придется вытащить к себе этот файл состояния:

terraform state pull

и заменить такие строки на стандартные, рутовые провайдеры:

provider: "provider[\"registry.terraform.io/hashicorp/aws\"]"

далее можно отправить этот файл обратно в backend (terraform state push) или же используя локальный бэкенд удалить структуру руками:

terraform destroy -state=terraform.tfstate


Комментариев нет: