Terraform失去了对GKE群集资源的跟踪

时间:2020-09-27 14:06:05

标签: terraform terraform-provider-gcp

我有一些Terraform文件,从根目录的main.tf开始,有很多模块作为子目录,包括3个GKE集群。当我尝试添加新集群(该集群是基于与其他集群相同的源文件的新模块)时,我搞砸了它,但不知道如何做。 (虽然我是Terraform的新手,但我在CFN和CDK方面有相当的经验,并且知道它是如何工作的。因此,我很确定自己没有做任何愚蠢的事情。)
这就是所发生的(或多或少):

  1. 我从terraform plan开始,以确保它处于干净状态。 Terraform说:“没有变化。基础设施是最新的。”
  2. 我复制了一个现有的GKE集群模块,并为其资源重新命名,等等。
  3. 我再次运行terraform plan(使用-out开关)并验证了将要发生的情况。一切都按预期进行。
  4. 我运行了terraform apply,但是由于无效的GKE K8S主版本而失败。
  5. 我尝试了几个不同的版本,最后使其正常运行(这意味着Terraform开始创建新集群和其他集群)。但由于出现一些奇怪的错误“意外的EOF”,因此失败了。
  6. 我试图清理一团糟。刚刚删除了(新集群的)新模块并验证了计划。这不是很简单,但是我设法清理了烂摊子。
  7. 现在,我希望它处于启动状态。但事实并非如此。所有这三个集群都脱离了该州。它们实际上存在于GCP上(就像所有事物一样存在),但是Terraform却以某种方式丢失了它们。

我没有从terraform文件中删除它们(如果我这样做的话,它们会在GCP上删除),也不知道如何恢复。不幸的是,GS存储桶上未启用版本控制。我在本地计算机上也找不到任何terraform.tfstate.backup。据我从Internet上了解到,没有简单的方法可以从这种混乱中恢复(导入或手动建立状态)。我还要检查GS的状态。状态文件中不再存在GKE群集资源。

现在我的问题是:

  1. 到底发生了什么?我怎么最终陷入困境?我可能做错了什么?
  2. 状态备份在哪里?在网络上,他们说它位于.terraform文件夹中。但是我只有一个terraform.state文件,一些插件目录以及一些模块快捷方式。我很确定自己没有删除任何内容。

注意:我不确定代码是否与此处相关。如果是这样,我可以将它们添加到问题中。谢谢。

更新:有趣的是,在当前情况下,terraform plan(除了尝试创建已创建的集群,例如module.production_cluster.module.cluster.google_container_cluster.main之外)还想要销毁/创建其他资源,例如module.production_cluster.module.cluster.null_resource.cluster_with_node_pool。但是这些资源取决于主要资源(Terraform失去了追踪的集群)。

0 个答案:

没有答案