繁体   English   中英

使用 Github 操作模式的 Terraform

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM