如何使Terraform跳过破坏资源的工作?

时间:2019-07-26 23:39:40

标签: terraform

我正在使用terraform来配置Azure AKS Kubernetes群集,包括一堆命名空间,部署(例如cert-manager,external-dns等),机密等等。当群集被拆除时,所有这些都将被删除,但是其中一些不能被terraform删除。这种情况最常发生在名称空间中,如下所示(它实际上并没有完成删除所有内容的作用):

"Operation cannot be fulfilled on namespaces "cert-manager": The system is ensuring all content is removed from this namespace.  Upon completion, this namespace will automatically be purged by the system."

在销毁时如何使Terraform忽略这些资源?

1 个答案:

答案 0 :(得分:0)

表面上,这似乎是Terraform的一个大问题

Terraform管理状态,因此它知道它创建了什么以及哪些资源相互依赖。当它销毁某些东西时,它也知道要销毁哪些依赖项,从而建立了操作顺序。

因此,似乎您是在说要Terraform控制创建,但要“忘记”销毁某些内容,尽管它保留了依赖关系图。这似乎是获取损坏状态的好方法。

因此,请记住这一警告,也许您可​​以明智地尝试使用“ terraform state rm”,以便terraform不会管理销毁对象时需要跳过的内容。

类似

  • 地形应用
  • 一些脚本,用于在“ terraform state rm”状态中破洞
  • 地形破坏

困难的部分是确保保留的所有内容均未引用“ rm'd”的任何内容-terraform会对您发怒并可能拒绝这样做