Ресурсы Terraform не уничтожаются из терминала

Ресурсы Terraform не уничтожаются из терминала

Я хотел уничтожить DEVсреду из моего Kubernetes, размещенного на AWS EKS. Ресурсы состоят из двух частей: инфраструктурной и прикладной. Я использую Terraform/ Terragruntдля развертывания/уничтожения инфраструктуры и helmдля развертывания/уничтожения приложений. Работает несколько подов, и я мог уничтожить релизы, запустив helm uninstall <release-name>. Однако, когда дело дошло до уничтожения инфраструктуры, я столкнулся с ошибкой. Вот что я сделал:

Чтобы уничтожить инфру, я запустил: ENV=DEV make destroy. На эту команду возвращается следующее:

cd infra/DEV && terragrunt destroy

Remote state S3 bucket aib-iac-tf-state does not exist or you don't have permissions to access it. Would you like Terragrunt to create it? (y/n)

Я попробовал оба варианта, yно nони возвращают эту ошибку:

make: *** [Makefile:30: destroy] Error 1

Предположив, что мой доступ был изменен пользователем root для создания/удаления ресурсов внутри S3 Bucket, я обнаружил, что это не так. Он S3 Bucket aib-iac-tf-stateсуществует в хранилище.

Затем я пошел проверить внутри *Makefile*, строка 30, как ошибка. Вот что находится в строках 29 и 30:

destroy:
    cd ${INFRA_DIR}/${ENV} && terragrunt destroy ${TF_VARS}

Я все еще не могу уничтожить ресурсы. Любая помощь будет оценена.

решение1

Ошибка Terraform говорит вам, что его удаленный контейнер состояний не существует, и поэтому он не может прочитать удаленное состояние, чтобы понять, что нужно уничтожить. Это похоже на неправильную конфигурацию в обертке, которую вы используете через Make.

Если можете, проверьте .tfфайлы на наличие такого блока:

terraform {
  backend "s3" {
    bucket = "mybucket"
    key    = "path/to/my/key"
    region = "us-east-1"
  }
}

И убедитесь, что у бакета правильное имя. Возможно, вам придется сравнить его с вашим аккаунтом AWS, чтобы найти бакет, содержащий правильные данные.

Если вы не можете найти ничего подобного, проверьте наличие .tfstateфайла в локальном рабочем пространстве, а затем снимите блокировку backend, чтобы он использовал ваш локальный файл состояния, а не удаленный бэкенд.YMMV- возможно, вам стоит найти коллегу с навыками Terraform и попросить его взглянуть!

Короче говоря, мне кажется, что это какой-то баг в обертке или что-то было удалено не по порядку.

Связанный контент