问题标签 [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.
terraform - terraform 云远程后端的 terraform 导入失败
我正在尝试将现有的 github 存储库导入到 terraform。我决定尝试 terraform cloud,在设置之后,即使一切设置正确,也会terraform import
失败。401 unauthorized
基本上,我有这个:
如果我运行terraform import github_repository.goreleaser goreleaser
,它会按预期工作(我有一个TF_VAR_github_token
环境)。
如果我添加远程后端:
并运行相同的命令,我得到:
这应该工作吗?
我也在 terraform 云上设置了变量 - 远程terraform plan
工作,但导入失败。
github - 如何在 GITHUB 中使用没有远程分支的 Terraform 更新分支保护?
我需要为很多存储库创建CI/CD 管道并保护 GITHUB 中的一些特定分支。但是如果远程分支不存在,我会得到一个错误。
只有当我已经在 GITHUB 中创建了远程分支时,它才有效。但我需要通过 Terraform 或自动化方式来完成这一切。
使用 GITHUB 远程分支的 Terraform 结果:
(实际错误)没有 GITHUB 远程分支的 Terraform 结果:
terraform - 为现有 Terraform 资源模板化参数的模式
我正在使用 Terraform GitHub 提供程序为内部 GitHub Enterprise 实例定义 GitHub 存储库(尽管问题不是特定于提供程序的)。
现有github_repository
资源工作正常,但我希望能够为其某些参数设置非标准默认值,并轻松地将其他参数分组到一个新参数下。
例如
github_repository
的private
值默认为,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
示例。然后这一切都需要单独记录,鉴于现有提供者有很好的文档,这也是一种耻辱。
有没有更好的模式来重用这样的现有资源,但可以控制参数如何传递给它们?
github - terraform 1.0.0 关于 github 存储库 ETAG 的奇怪消息已更改
地形 1.0.0
terraform plan
显示以下消息
那么如何摆脱它呢?
尝试过, terraform apply -refresh-only
但没有帮助。
这是我的 tf 代码块:
github - 使用变量在 Terraform 中配置和创建新的 Github 存储库实例而不是就地更新的最佳实践
我正在尝试为我的组织设置一个标准的 Github 存储库模板,该模板使用 Terraform 通过配置的设置启动新的存储库。
每次我尝试更新配置文件以使用新名称创建存储库的新实例时,它都会尝试就地更新已使用该文件创建的任何存储库。
我的问题是使我的配置文件可与 repo 名称等输入变量重用的最佳做法是什么?我应该制作一个模块还是有其他方法可以重用该文件?
谢谢您的帮助。
github - Terraform 导入问题:Terraform 之外的对象已更改
在 tf 版本 1.0.3
我在本地导入资源:
这是 repos.tf 文件中的资源配置:
现在,当我在本地运行 tf init 和 tf plan 时,我确实没有看到任何变化:
当我运行 tf 计划时:
但是,问题是当我将本地推送到连接到在 Jenkins 上运行的 Terraform 的 github PR 时......在 Jenkins tf 计划中,我看到了这个:
所以它没有接受我在本地进行的 terraform 导入。我不知道为什么会这样,也不知道如何解决这个问题。
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 组织中。
您如何创建组织存储库?
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 以保持跟踪?这对于小型团队来说可能是可行的,但对于大型组织来说可能会变得非常麻烦。
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 创建没有任何问题。有没有其他人遇到过这个问题?