我试图通过地形部署一些基础设施。第一次运行apply时,它会部署vm,但如果再次运行apply,它希望运行、销毁和重新部署vm,即使配置没有更改。我从输出中看到的是,这是因为id和network.o.name,我不知道为什么会引起问题。
resource "openstack_compute_instance_v2" "test" {
name = "test_server"
image_id = "image_id"
flavor_id = "flavour_id"
key_pair = "test"
security_groups = ["default"]
network {
name = "Default Network"
}
}id:"16342cd6-7f26-4a77-9c3f-11c626400f4f“=> (强制新资源)
名称:“默认网络”“=>”默认网络“(强制使用新资源)
发布于 2018-09-24 08:05:22
我已经很长时间没有使用OpenStack了,但是看起来网络名在OpenStack中不区分大小写,所以尽管在配置(Default Network)中指定了一个不同的大小写网络名称,但您的实例还是放在Default network网络中。
因为ForceNew然后Terraform检测到配置和提供程序之间的偏移,并表示它需要创建一个新的资源。在这种情况下,只需更新配置以匹配提供程序正在使用的配置就可以了。
在提供程序中正确修复此问题的正常方法是使用DiffSuppresFunc,这使得Terraform忽略了配置和提供程序之间的差异。openstack_compute_instance_v2资源已经将其用于抑制可用性区域的差异。
https://stackoverflow.com/questions/52474442
复制相似问题