Terraform失去了GKE集群资源的踪迹

Terraform失去了GKE集群资源的踪迹,terraform,terraform-provider-gcp,Terraform,Terraform Provider Gcp,我有一些Terraform文件,从根目录的main.tf开始,有很多模块作为子目录,包括3个GKE集群。当我试图添加一个新集群(这是一个基于与其他集群相同的源文件的新模块)时,我把它搞砸了,但不知道如何添加。(虽然我是Terraform的新手,但我对CFN和CDK有相当多的经验,并且知道如何工作。所以我很确定我没有做任何愚蠢的事情)。 事情就是这样(或多或少): 我从地形图开始,以确保它处于清洁状态。Terraform说“没有变化。基础设施是最新的。” 我复制了一个现有的GKE集群模块,并给它的

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

  • 我从地形图开始,以确保它处于清洁状态。Terraform说“没有变化。基础设施是最新的。”
  • 我复制了一个现有的GKE集群模块,并给它的资源起了新的名字,等等
  • 我再次运行了
    terraform plan
    (使用
    -out
    开关)并验证了即将发生的事情。一切如期而至
  • 我运行了
    terraformapply
    ,但由于GKE K8S主版本无效而失败
  • 我尝试了两个不同的版本,最终成功了(这意味着Terraform开始创建新集群和其他集群)。但由于一些奇怪的错误“意外的EOF”,它失败了
  • 我试图收拾残局。刚刚删除了(新集群的)新模块并验证了计划。这并不简单,但我还是设法收拾了烂摊子
  • 现在,我希望它处于启动状态。但事实并非如此。这三个集群都从该州消失了。它们实际上存在于GCP上(就像所有存在的东西一样),但Terraform不知何故失去了它们的踪迹
  • 我没有从地形文件中删除它们(如果我这样做的话,它们会在GCP上被删除),也不知道如何恢复。不幸的是,GS bucket上没有启用版本控制。在本地计算机上也找不到任何
    terraform.tfstate.backup
    。据我从互联网上了解到的情况,要从混乱中恢复(导入或手动构建状态),没有简单的方法。我还检查了GS上的状态。状态文件中不再存在GKE群集资源

    现在我的问题是:

  • 到底发生了什么事?我怎么会陷入这样的困境?我可能做错了什么
  • 州备份在哪里?在网络上,他们说它在
    .terraform
    文件夹中。但是我只有一个
    terraform.state
    文件、一些插件目录和一些模块的快捷方式。我非常确定我没有删除任何内容
  • 注意:我不确定代码是否与此相关。如果是的话,我可以把它们添加到问题中。谢谢


    更新:有趣的是,在当前情况下,
    TerraformPlan
    (除了尝试创建已经创建的集群,例如
    module.production\u cluster.module.cluster.google\u container\u cluster.main
    )想要破坏/创建一些其他资源,类似于
    module.production\u cluster.module.cluster.null\u resource.cluster\u with\u node\u pool
    。但是这些资源依赖于主资源(Terraform已经失去跟踪的集群)。

    关于如何恢复,您是否尝试过将孤立资源导入到状态文件中?由于您已经有了最初定义它们的代码,并且假设状态文件没有严重损坏,理论上只要您正确地获得Terraform资源地址,就应该只需要导入。