【发布时间】:2022-10-21 10:42:50
【问题描述】:
我正在为一个涉及 Cloud Run 的 GCP 项目设置 CI&CD 环境。虽然通过 Terraform 设置一切都非常简单,但我不知道如何在代码更改时更新环境。
- 更改配置文件。
但这会将应用程序部署与 terraform 配置结合起来,后者应该只负责基础设施部署。
理想情况下,我使用 terraform 来配置基础设施,并使用另一个 CI 步骤来构建和部署容器。
这里有最佳实践吗?
相关来源:1。
【问题讨论】:
-
在这种情况下,您的 Terraform 只会执行更新操作来修改环境变量。如果您的意思是“容器”,那么不需要另一个构建和部署。如果您的意思是“图像”,那么对其环境的更新将需要新的构建。不过,您可能需要使用无服务器来最有效地执行此操作。
-
@MattSchuchard 谢谢,但我不确定我是否完全理解。我是“无服务器”,我的目标是在代码更改时更新实际图像(例如合并到
master分支)。 -
但这意味着 Terraform 将负责应用程序的部署,这是不可取的。
-
我最终将 Cloud Run 服务创建(在 Terraform 中)和部署到两个不同的工作流中分离。关键组件是让 terraform 忽略实际部署的图像,这是我使用
ignore_changes = [template[0].spec[0].containers[0].image]实现的 -
@galah92 我建议您将此评论添加为您问题的答案并自己接受。这对其他人有帮助:)
标签: google-cloud-platform terraform google-cloud-run terraform-provider-gcp