terraform docs建议指定提供程序版本,以避免破坏更改。重大变化在这里意味着什么?
发生重大更改意味着terraform计划显示由于terraform init上自动提供程序版本升级而删除和重新创建资源的情况
让我说我的提供者terraform块如下所示,其中我未设置版本限制
provider "aws" {
region = "us-west1"
shared_credentials_file = "/home/ubuntu/.aws/credentials"
profile = "default"
}
现在让我说我已经运行了terraform apply并创建了下面的基础设施,请考虑此时aws插件的版本是2.0.0。
让我说一个月后,我已经克隆了仓库并做了terraform init,现在可以说aws插件的版本是4.0.0,因为没有版本限制就可以获取最新版本
由于此自动插件版本已升级到4.0.0,但由于我以前使用的是2.0.0,因此terraform计划可能会导致修改资源配置或删除并重新创建或破坏现有资源。
答案 0 :(得分:1)
更新:可能,但不太可能。
娱乐:可能,但可能性更低。
删除:我不这么认为。
最有可能发生的事情是您的terraform plan
或terraform apply
将失败,因为提供程序不再支持您指定的某些资源属性,或者它需要一个新的属性您没有设置,或者资源被完全删除,或者您使用的某些输出已更改,等等...
关于region
的{{1}}属性,这只是发生在我们身上,我们指定了它,提供者得到了更新,aws_s3_bucket
失败了,因为您不再被允许指定一个plan
。