【问题标题】:Kubernetes services deployed via Terraform's local-exec not destroyed when applying "terraform destroy"通过 Terraform 的 local-exec 部署的 Kubernetes 服务在应用“terraform destroy”时不会被销毁
【发布时间】:2021-09-27 03:27:02
【问题描述】:

我想通过 Terraform 模板化我的 Kubernetes 清单,并从 local-exec 配置器执行 kubectl apply

一切似乎都很完美,直到我意识到资源(服务和部署)实际上并没有被terraform apply 破坏。

清单以这种方式模板化和应用:

data "template_file" "service_template" {
  count    = length(var.services)

  template = file("${path.module}/templates/${lookup(var.services[count.index], "name")}.tpl")
  
  vars = {
    cluster_name = var.cluster_name
    tag          = lookup(var.services[count.index], "tag")
  }
}

resource "local_file" "template" {
  count    = length(var.services)

  content  = data.template_file.service_template[count.index].rendered
  filename = "${path.module}/deployments/${lookup(var.services[count.index], "name")}.yaml"
}


resource "null_resource" "apply" {
  count    = length(var.services)

  provisioner "local-exec" {
    command = "kubectl apply -f ${path.module}/deployments/${lookup(var.services[count.index], "name")}.yaml --kubeconfig config_file_path"
  }
}

我想生成清单,以便在需要时能够轻松地手动管理我的服务/部署。

是否有人像这样部署清单并在销毁后设法保持干净状态?

或者唯一的解决方案是使用 kubernetes_servicekubernetes_deployment 资源?

编辑:

我尝试使用将 on_destroy 值分配给 when 的 local-exec 配置程序,但遇到了引用错误:

Destroy-time provisioners and their connection configurations may only
reference attributes of the related resource, via 'self', 'count.index', or
'each.key'.

References to other resources during the destroy phase can cause dependency
cycles and interact poorly with create_before_destroy.

【问题讨论】:

标签: kubernetes terraform amazon-eks


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 2021-03-20
  • 2017-09-06
  • 2020-07-07
  • 2022-07-06
  • 2021-04-05
  • 2019-10-05
  • 2020-10-24
  • 2020-06-26
相关资源
最近更新 更多