azure-devops - Terraform 工作空间命名约定
问题描述
我有 4 个 terraform 目录,用于存储库的 4 个分支(dev、qa、uat、prod)。通过在 TF 云中添加“分支”作为环境变量,并在我的资源中使用它,我能够插入我需要的每个变量。但是,工作区名称本身就是问题所在。尝试向其添加插值变量会引发错误 - 工作区名称不能包含这些。而且由于我的分支自动相互 PR(代码立即从 dev 一直提升到 prod)它会导致冲突 - 因为所有 tf 文件现在都有不同的硬编码工作区名称。是的,当我推广我的分支时,我可以忽略 terraform 文件,但我的想法是编辑 dev.tf 会影响所有其他人。有什么办法可以解决这个问题?
解决方案
我认为你需要远离拥有多个分支机构。分支跟踪同一代码库上的更改。此外,当您有一个后端配置但您的基础设施有多个实例时,工作区是可用的。例如,多个开发人员使用单个 AWS 账户使用相同的 IaC 创建自己的沙盒应用程序。
由于您有多个环境(dev、qa、uat、prod),我建议使用相同的代码库和不同的配置文件。就像是:
- common.tfvars
- 开发者.tfvars
- qa.tfvars
- uat.tfvars
- prod.tfvars
当您想更改某些内容时,仅编辑dev.tfvars
,测试您的更改,然后将这些配置更改添加到其余文件中。此外,考虑标记您的 prod infra 并仅在此处使用 git 标签应用更改。
推荐阅读
- python - 无法在主线程启动的线程上运行 python GUI。任何替代方案或解决方法?
- angular - 组件功能绑定在模板中不起作用
- powerbi - 如何识别 powerbi 中的报表使用哪个数据集
- python - 为什么 Tkinter 菜单不更新
- c# - 我想获得长度相同的字符串的第一个和第二个字母对(通过使用 LINQ)
- c# - ASP.NET Core 声明值的 Int32
- c# - 使用 Azure AD 的 C# MVC Web App 在失败前随机开始重定向大约 10 次
- nginx - NGINX punycode 域仅适用于子域
- asp.net-core - ASP.Net Core SignalR 身份验证始终以 403 响应-禁止
- javascript - 如何从JS中的日期选择器获取日期值(MM-DD-YYYY)