如何通过Terraform升级Composer小版本且不销毁现有环境?
解决方案
一、通过Terraform实现无销毁的Composer版本升级
- 升级Google Terraform Provider:旧版google/provider(v4.0.0以下)会将
image_version标记为强制重建字段。请将Provider版本升级至v4.0.0及以上,新版已支持Composer 2.x系列的小版本(如composer-2.0.x)in-place升级。 - 仅变更
image_version字段:确保仅修改image_version为同主版本的兼容版本(比如从composer-2.0.30-airflow-2.3.3到composer-2.0.32-airflow-2.3.4),不要同时修改其他可能触发重建的配置(如网络、节点规格等)。 - 验证计划:修改配置后运行
terraform plan,此时应显示0 to add, 1 to change, 0 to destroy,确认是in-place更新而非销毁重建。
二、控制台/gcloud升级后同步到Terraform
如果已通过控制台或gcloud完成版本升级,按以下步骤同步Terraform配置与状态:
- 更新配置文件:将代码中的
image_version替换为升级后的新版本值。 - 刷新本地状态:执行
terraform refresh,让Terraform拉取远程Composer环境的实际配置,更新本地状态文件中的image_version。 - 确认一致性:运行
terraform plan,若输出显示No changes. Your infrastructure matches the configuration.,说明配置与状态已同步。 - 修复状态差异:若refresh后仍存在差异,执行
terraform apply -refresh-only,强制将本地状态与远程资源对齐。
内容的提问来源于stack exchange,提问作者Imad
相关产品推荐
相关产品推荐

