
Я хотел уничтожить 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 и попросить его взглянуть!
Короче говоря, мне кажется, что это какой-то баг в обертке или что-то было удалено не по порядку.