问题标签 [terraform-provider-github]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
468 浏览

terraform - terraform 云远程后端的 terraform 导入失败

我正在尝试将现有的 github 存储库导入到 terraform。我决定尝试 terraform cloud,在设置之后,即使一切设置正确,也会terraform import失败。401 unauthorized

基本上,我有这个:

如果我运行terraform import github_repository.goreleaser goreleaser,它会按预期工作(我有一个TF_VAR_github_token环境)。

如果我添加远程后端:

并运行相同的命令,我得到:

这应该工作吗?

我也在 terraform 云上设置了变量 - 远程terraform plan工作,但导入失败。

0 投票
2 回答
717 浏览

github - 如何在 GITHUB 中使用没有远程分支的 Terraform 更新分支保护?

我需要为很多存储库创建CI/CD 管道并保护 GITHUB 中的一些特定分支。但是如果远程分支不存在,我会得到一个错误。

只有当我已经在 GITHUB 中创建了远程分支时,它才有效。但我需要通过 Terraform 或自动化方式来完成这一切。

使用 GITHUB 远程分支的 Terraform 结果:

(实际错误)没有 GITHUB 远程分支的 Terraform 结果:

0 投票
1 回答
57 浏览

terraform - 为现有 Terraform 资源模板化参数的模式

我正在使用 Terraform GitHub 提供程序为内部 GitHub Enterprise 实例定义 GitHub 存储库(尽管问题不是特定于提供程序的)。

现有github_repository资源工作正常,但我希望能够为其某些参数设置非标准默认值,并轻松地将其他参数分组到一个新参数下。

例如

  • github_repositoryprivate值默认为,false但我想默认为true
  • 许多 repos 只希望允许 squash 合并,所以有一个squash_merge_only参数来设置allow_squash_merge = true, allow_rebase_merge = false, allow_merge_commit = false

还有更多的案例,但这些都说明了这一点。目的是让人们更容易正确地配置新的 repos,并避免在每个 repo 中重复大量的配置。

我可以通过将变量传递到自定义模块来实现这一点,例如:

Foo/custom_repo/main.tf

Foo/main.tf

不过这有点垃圾,因为我必须为github_repository使用该custom_repo模块的人可能想要设置的每个其他参数添加一个变量(这基本上是所有这些 - 我不是试图限制人们被允许做的事情)name-参见repo_name示例。然后这一切都需要单独记录,鉴于现有提供者有很好的文档,这也是一种耻辱。

有没有更好的模式来重用这样的现有资源,但可以控制参数如何传递给它们?

0 投票
1 回答
737 浏览

github - terraform 1.0.0 关于 github 存储库 ETAG 的奇怪消息已更改

地形 1.0.0

terraform plan显示以下消息

那么如何摆脱它呢?

尝试过, terraform apply -refresh-only但没有帮助。

这是我的 tf 代码块:

0 投票
1 回答
37 浏览

github - 使用变量在 Terraform 中配置和创建新的 Github 存储库实例而不是就地更新的最佳实践

我正在尝试为我的组织设置一个标准的 Github 存储库模板,该模板使用 Terraform 通过配置的设置启动新的存储库。

每次我尝试更新配置文件以使用新名称创建存储库的新实例时,它都会尝试就地更新已使用该文件创建的任何存储库。

我的问题是使我的配置文件可与 repo 名称等输入变量重用的最佳做法是什么?我应该制作一个模块还是有其他方法可以重用该文件?

谢谢您的帮助。

0 投票
1 回答
590 浏览

github - Terraform 导入问题:Terraform 之外的对象已更改

在 tf 版本 1.0.3

我在本地导入资源:

这是 repos.tf 文件中的资源配置:

现在,当我在本地运行 tf init 和 tf plan 时,我确实没有看到任何变化:

当我运行 tf 计划时:

但是,问题是当我将本地推送到连接到在 Jenkins 上运行的 Terraform 的 github PR 时......在 Jenkins tf 计划中,我看到了这个:

所以它没有接受我在本地进行的 terraform 导入。我不知道为什么会这样,也不知道如何解决这个问题。

0 投票
2 回答
138 浏览

terraform - Terraform:创建 GitHub 组织存储库而不是用户存储库

TF文件结构:

  • ./
    • main.tf(参见下面的代码,此处定义的 github 提供程序)
    • 模块 1(文件夹)
      • 模块1.tfvars
      • github-repos.tf(见下面的代码)
      • main.tf(空白)
      • variables.tf(为模块定义,值来自 tfvar 文件)
    • 模块2(文件夹)
    • 模块 3(文件夹)

我已经在我的根main.tf文件中设置了 GitHub 集成,如下所示:

./main.tf

github_mgmt_token来自同一main.tf文件中稍后的输出,并且似乎运行良好(因为在 PAT 用户存储库下成功创建了存储库)。

在一个模块中,我有一个github-repos.tf看起来像这样的文件: ./moduel1/ github-repos.tf

这成功创建了没有问题的存储库,但它在 PAT 用户帐户而不是 GitHub 组织中。

您如何创建组织存储库?

0 投票
1 回答
43 浏览

terraform - 考虑到需要手动添加变量,如何自动化 Terraform?

我正在处理的一个用例使用 Jira 来收集有关用户的信息,即:用户名和必须将用户添加到的 github 团队

然后启动 Terraform 脚本以将该用户添加到指定的 GitHub 团队。虽然这可以按预期工作,但因为我使用的是通过一组用户及其角色的单个资源声明,如下所示:

我需要维护一个变量列表,如下所示:

现在如果要向 test_team 添加一个新用户:

TF 会添加 username_3,但是下次我们使用 username_4 时,由于 username_3 没有像 username_1 和 username_2 一样手动添加到变量 github_team_memberships 中,TF 会尝试删除 username_3 并添加 username_4。

这是否意味着没有办法自动化这个过程?每次提交工单并运行 TF 时,开发人员需要手动更新此变量 github_team_memberships 以保持跟踪?这对于小型团队来说可能是可行的,但对于大型组织来说可能会变得非常麻烦。

0 投票
0 回答
62 浏览

terraform - 404 使用 Terraform 创建 github_repository_webhook 时

我们升级为使用integrations/github提供程序源,并且自从尝试使用 Terraform 创建 github_repository_webhook 时开始收到 404。我相信我们拥有基于文档所需的所有必要部分,但日志中的 API uri 缺少 org. 注意:真实的组织和回购名称已被编辑。

主文件

后端.tf

创建时出错:

请注意,该 org 完全从 URL 中丢失。我也尝试在 github_repository_webhook 资源中包含组织名称,但 url 仍然带有双斜杠和 404:

当我完全删除提供程序源和版本时,terraform 会回退到hashicorp/terraform源并且 webhook 创建没有任何问题。有没有其他人遇到过这个问题?