我有一些Terraform文件,从根目录的main.tf
开始,有很多模块作为子目录,包括3个GKE集群。当我尝试添加新集群(该集群是基于与其他集群相同的源文件的新模块)时,我搞砸了它,但不知道如何做。 (虽然我是Terraform的新手,但我在CFN和CDK方面有相当的经验,并且知道它是如何工作的。因此,我很确定自己没有做任何愚蠢的事情。)
这就是所发生的(或多或少):
terraform plan
开始,以确保它处于干净状态。 Terraform说:“没有变化。基础设施是最新的。” terraform plan
(使用-out
开关)并验证了将要发生的情况。一切都按预期进行。terraform apply
,但是由于无效的GKE K8S主版本而失败。我没有从terraform文件中删除它们(如果我这样做的话,它们会在GCP上删除),也不知道如何恢复。不幸的是,GS存储桶上未启用版本控制。我在本地计算机上也找不到任何terraform.tfstate.backup
。据我从Internet上了解到,没有简单的方法可以从这种混乱中恢复(导入或手动建立状态)。我还要检查GS的状态。状态文件中不再存在GKE群集资源。
现在我的问题是:
.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失去了追踪的集群)。