问题标签 [terraform-provider-gitlab]
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 - 如何将 API 令牌作为 Terraform 秘密资源提供给 GitLab Terraform 提供者?
我正在尝试使用 Terraform 来管理一些 GitLab(自托管)配置。Terraform GitLab 提供程序需要 GitLab 个人访问令牌才能进行 API 调用以读取和写入配置。当我尝试使用 Terraform 提供此令牌时,secret_resource
Terraform 无法让我管理机密。当我尝试导入密钥时,Terraform 失败:
这是重现此行为的最小 Terraform:
我省略了真实的主机名和 GitLab 令牌值。通过使用此配置初始化一个新的 Terraform 根模块,然后尝试导入密钥,我可以可靠地重现此故障。
这似乎是一个不合理的失败——secret_resource
不依赖于 GitLab 提供者。如果 Terraform 允许导入该值,那么它将可用,然后 GitLab 提供程序将被正确配置。
我观察到这种行为:
- Terraform v0.13.6
- 提供者registry.terraform.io/nixpkgs/gitlab v3.4.999(git rev 68c8c0e4cf14fda698bcacb74cb01fcfe7128815)
- 提供者 registry.terraform.io/nixpkgs/secret v1.1.1
我希望能够继续使用secret_resource
来管理 GitLab API 令牌。我怎样才能?
gitlab - 取决于列表中的另一个元素
我正在尝试从头开始创建 Gitlab 组的层次结构。由于它可能会自行扩展,因此我不想为每个组创建单独的资源,因此我尝试创建一个自定义模块并通过使用 for_each 从列表中创建组:
在所有组都没有父组之前,这很有效。问题是如果提供了父组,它将在创建父组之前读取父组的数据。
模块中的相关代码片段:
从terraform apply
命令记录:
depends_on
除了为每个组创建单独的资源并手动设置之外,还有什么方法可以强制依赖列表中的另一个元素?
如果有必要,我正在使用以下版本:
任何帮助表示赞赏!
编辑:最初的想法是创建一个动态组层次结构,我们不必手动将子组重新连接到新的中间父级。
如果我想在 Subgroup2 及其子组之间引入一个新组,我将不得不手动设置彼此之间的依赖关系,虽然这对少数组来说不是问题,但如果足够大,这可能是一个真正的问题组数。
terraform - Terraform - 用于不同属性编号的嵌套循环
描述
我有以下输入结构 (*.tfvars.json)
解析为以下 tf 变量:
项目的数量以及每个项目中的变量数量可能会有所不同,因此定义为列表。
首先,我使用简单的“计数”元参数创建项目(gitlab 提供程序):
但后来我正在努力创建项目的变量。
问题
使用 "count" 不起作用,因为它不支持嵌套;
所以我发现的另一种方法是使用 for-each 循环。
我已经展平了地图:
但它仍然没有给我任何东西,因为我没有看到使用唯一属性(如名称)检索创建的项目 ID 的选项,并且项目 ID 是创建变量资源所必需的:
这似乎是一个相当简单的要求(只是一个使用第一个循环迭代器作为索引来检索项目 ID 的嵌套循环),但我找到的解决方案要么不涵盖这种特殊情况(具有未定义/可变数量的循环中的参数),或者过于复杂......
你们能分享一下如何用 terraform-newbie 解决这样的问题吗?
terraform - Terraform - 在循环中的模块之间创建和传递文件
我的 TF 脚本正在创建 k8s 资源并基于template_file
.
然后我想将其传递给另一个模块(使用 GitLab 提供程序 - 将它们保存为 GitLab 变量)。
到目前为止,我只创建了一个 kubconfig,而且方法非常简单:
然后传递给 GitLab 模块:
并用作:
但是如何为多个文件实现相同的效果?
我看到这count
也适用于数据,所以我可以定义:
但随后output
不支持count
,并且我的“花式”强制循环解决方法似乎不起作用:
你知道如何处理这样一个话题吗?