我刚刚在我的terraform基础模块上创建了一个composer环境实例(resource google_composer_environment
)具有以下属性:image_version = "composer-2.0.30-airflow-2.3.3"
.
当你尝试通过控制台升级时,集群不会被破坏(我认为?),但是当我尝试使用image_version = "composer-2.0.32-airflow-2.3.4"
通过terraform进行升级时,环境显然会被废弃并重新创建:
# module.dev-omni-orchestrator-instance.google_composer_environment.omni-orchestrator-instance must be replaced
...
Plan: 1 to add, 0 to change, 1 to destroy.
有没有办法在不破坏现有环境的情况下在terraform内实现这些版本的升级?可能通过控制台升级或gcloud然后是update+import ?
我以前也遇到过同样的问题,为了解决它:
- 从
Cloud Composer
console
升级版本,在这种情况下集群不会被破坏 - 升级
Terraform
代码中的版本 - 当你计划
Terraform
Composer
资源时,Terraform
将检测到真实基础设施中的变化,并且不会计划更改,也不会更新(因为来自真实基础设施的版本与Terraform资源中的版本相同)
我认为这是Google provider
中资源的问题,但它并没有阻止我使用这种技术。