试图调和/刷新地形基础设施漂移



我有一个Terraform GCE资源正在使用以下模块创建:

resource "google_compute_address" "gke_proxy1" {
...
}
resource "google_compute_disk" "gke_proxy1" {
...
}
resource "google_compute_instance" "gke_proxy1" {
...
}

然而,在某些时候,外部Terraform脚本,已经为特定的GCE创建了google_compute_address,所以当我尝试应用TF脚本时,它试图创建计算地址,这不是我想要的。例如:

terraform plan -var "env=dev" -target module.gke-proxy-primary;

如果我运行以下命令来显示真实状态:

terraform state show module.gke-proxy-primary.google_compute_instance.gke_proxy1

输出显示预期的compute_address状态地址:

network_interface {                                                                                                                                                             
name               = "nic0"                                                                                                                                                 
...                                                                                                             
}                                                                                                                                                                               
network_interface {                                                                                                                                                             
name               = "nic1"                                                                                                                                                 
...                                                                                                             
}            
                                                                                         

所以我想我需要从现实世界的基础设施中重建TF状态,所以我尝试了以下方法,因为状态和现实世界之间存在漂移:运行:

terraform refresh -var "env=dev" -target module.gke-proxy-primary;

给我:

module.gke-proxy-primary.google_compute_disk.gke_proxy1: Refreshing state... [id=projects/proj1/zones/europe-west2-a/disks/gke-proxy1]
module.gke-proxy-primary.google_compute_instance.gke_proxy1: Refreshing state... [id=projects/proj1/zones/europe-west2-a/instances/gke-proxy1]

所以它没有刷新compute_address。Gke_proxy1资源的远程存储桶状态,与实际情况一致。知道我哪里做错了吗?

  1. 为主资源gce导入缺失的依赖项compute_address到state,使用:

    terraform import -var "env=dev"var"primary_cluster_suffix = 1,module.gke-proxy-primary.google_compute_address。gke_proxy1汇丰- 10723777 -安全- dev/europe-west2 gke-proxy1

  2. 验证资源是否处于本地状态:

    terraform state show module.gke-proxy-primary.google_compute_address.gke_proxy1现在应该显示

  3. 运行计划,并应按预期协调。

相关内容

  • 没有找到相关文章

最新更新