Что делать, если terraform destroy не работает? - PullRequest
1 голос
/ 01 августа 2020

Я тестирую ресурс mysql_database внутри ресурса docker_container.mysql в windows, и после выполнения terraform destroy ранее созданный ресурс mysql_database не уничтожается (по-прежнему terraform show s в terrafrom.tfstate), вероятно, потому что я не сказал terraform в main.tf, что mysql_database depends_on ресурс docker_container.mysql

Я уже добавил отношение depends_on, но terraform destroy все равно не работает и продолжает говорить

Error: Could not connect to server: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine actively refused it.

Вот main.tf:

provider "docker" {
  host = "npipe:////.//pipe//docker_engine"
}

resource "docker_image" "mysql" {
  name         = "mysql:8"
  //keep_locally = true
}

resource "docker_container" "mysql" {
  name    = "mysql"
  image   = docker_image.mysql.latest
        restart = "always"
  env     = [
    "MYSQL_ROOT_PASSWORD=root"
  ]
  volumes {
    volume_name    = "mysql-vol"
    container_path = "/var/lib/mysql"
  }
  ports {
    internal = 3306
    external = 3306
  }
}

provider "mysql" {
  endpoint = "127.0.0.1:3306"
  username = "root"
  password = "root"
}

resource "mysql_database" "test" {
  name      = "test"
  depends_on = [docker_container.mysql]
}

А вот terraform.tfstate:

{
  "version": 4,
  "terraform_version": "0.12.29",
  "serial": 37,
  "lineage": "5f98996b-87be-947a-39fa-7cdc060fac79",
  "outputs": {},
  "resources": [
    {
      "mode": "managed",
      "type": "mysql_database",
      "name": "test",
      "provider": "provider.mysql",
      "instances": [
        {
          "schema_version": 0,
          "attributes": {
            "default_character_set": "utf8",
            "default_collation": "utf8_general_ci",
            "id": "test",
            "name": "test"
          }
        }
      ]
    }
  ]
}

Какое правильное / безопасное действие следует делать в такие случаи? Стоит ли просто вручную удалить ресурс mysql_database из terraform.tfstate?

...