我正在尝试自动化项目和资源的创建,以及使用terraform自动化云构建的触发器。要使用云构建触发器,我将不得不将位桶存储库镜像到GCP的源存储库。
我正在使用以下内容创建源项目https://www.terraform.io/docs/providers/google/r/cloudbuild_trigger.html,但没有设置镜像的选项。
在挖掘GCP(https://cloud.google.com/source-repositories/docs/reference/rest/v1/projects.repos/create)的API时,我可以看到mirrorConfig选项,但是文档说它处于只读模式。当我为API设置mirrorConfig时,出现以下错误。
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"field": "repo.mirror_config",
"description": "mirror_config is a read-only field and must not be set"
}
]
}
是否有一种方法可以使用terraform在GCP中自动将位存储桶到源存储库的镜像复制?如果没有,是否有其他替代方法/工具来实现这一目标?
如您所提到的(并且如documentation中所述),“ mirrorConfig”字段当前设置为只读,因此无法为其手动设置任何值。随后,您收到上述错误以及相应的消息描述。
设置镜像需要其他信息,因为云源存储库需要来自Bitbucket的授权,而SourceRepo API中未公开此操作。
“ mirrorConfig”在创建时是只读的,因为在使用Cloud Console时,此附加的必需信息是通过依赖用户从同一浏览器会话登录Cloud和GitHub站点来提供的。但是,API没有能力处理此问题。
似乎目前无法通过API镜像存储库。要自动创建镜像存储库,除了使用UI之外,没有其他解决方法,因此您将必须通过Cloud Console连接到外部源,如Mirroring a Bitbucket repository文档中所述。
但是,在我的调查中,我发现了关于此问题的Public Issue,但指的是GitHub。您可以在此公共发行中添加评论,以同时包含Bitbucket的功能,也可以对其进行“星标”,以便其具有更高的知名度,并可以对其进行进一步的更新。
希望此信息对您有所帮助。