如何通过Terraform获取GitLab已有用户组的namespace_id
解决方案
你当前的配置是声明要新建GitLab组才会触发403报错,无需申请组的高权限,通过以下两种方式即可获取目标组的namespace_id:
方式1:通过Terraform数据源自动读取(推荐)
使用GitLab Provider的data数据源查询已有组的信息,仅需要账号有对应组的只读访问权限即可,无需创建/管理权限,修正后的配置如下:
# 读取已有GitLab组的元数据 data "gitlab_group" "my_group" { # 填写组的完整路径,不要带GitLab实例域名前缀,嵌套组写完整层级如org/team/best_name full_path = "best_name" } resource "gitlab_project" "terraform_01" { name = "terraform_01" description = "created by terraform" # 直接引用数据源返回的组ID作为namespace_id namespace_id = data.gitlab_group.my_group.id visibility_level = "private" }
配置修改后执行terraform apply即可,不会再触发新建组的请求。
方式2:手动查询组ID硬编码
如果不想修改配置结构,也可以直接在GitLab页面手动获取namespace_id:
- 进入目标用户组的首页
- 点击左侧导航栏的设置→通用
- 下拉到页面底部的「高级」区块展开,即可看到组的ID数值
- 将该数值直接赋值给
gitlab_project资源的namespace_id参数即可。
内容的提问来源于stack exchange,提问作者ald
相关产品推荐
相关产品推荐

