[英]Terraform with Github Actions Pattern
我正在尝试使用 Github 拉取请求和合并功能为 Terraform 计划和应用实施 Github 操作。
我无法实现的是,为项目中的每个新组件重用工作流。
例如,我必须在项目中添加一个新的微服务,我创建了一个如下所示的 Terraform 模块,
#new-microservice.tf
module "new-microservice" {
source = "",
name = "foo",
nlb = true,
few other details
}
因此,当需要在项目中添加新的微服务时,任何人都可以通过更改属性值来创建带有模块块的新 TF 文件。
#one-more-microservice.tf
module "one-more-microservice" {
source = "",
name = "bar",
nlb = false,
few other details
}
到现在为止还挺好。 当我想隔离这个微服务的每个资源状态时,问题就出现了。
每个 TF 文件都将进入 Git 存储库中的单独目录,以便隔离 TF 状态。
但是,对于 Github Actions,工作流 yaml 应该保存在 Git 存储库的 .github/workflow 目录中。
如何找到在拉取请求中发生更改的目录并在该目录中运行工作流?
我尝试在 Github Actions Marketplace 中搜索,找不到任何具体的东西。
我不想在计划中创建多个作业并部署工作流 yaml 文件,一个用于微服务。
这很棘手,因为您基本上是说您希望在多个存储库推送上触发一个工作流,而目前在 github 操作中这不是
选项 1:创建一个工作流模板,它所做的只是在服务推送时启动并发送工作流调度程序事件。 您基本上进行了触发该工作流程的 api 调用。 唯一需要注意的是,截至目前,组织工作流模板仅适用于公共存储库。
选项 2:跟踪每个服务上次构建提交。 这将允许您进行扫描。 这样做的问题是您需要在 cronjob 上设置一个工作流,然后该工作流将遍历您组织中所有存储库的列表,并进行提交差异。 如果有可用的提交差异,那么您就知道要为您的部署做您需要做的事情。 如何获取组织回购列表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.