如何使用Terraform创建GCR存储库?

时间:2018-12-10 21:57:41

标签: google-cloud-platform google-cloud-storage terraform google-container-registry

https://www.terraform.io/docs/providers/google/d/google_container_registry_repository.html

有数据源,但没有资源。

gcr似乎没有直接的API。有没有使用Terraform创建GCR存储库的解决方法?我可以在gcr使用的“工件”存储桶中创建文件夹吗?有没有办法手动对gcr存储库进行地形化处理?

1 个答案:

答案 0 :(得分:1)

首先,google_container_registry_repository的Terraform概念似乎不完整,因为它仅表示“根存储库”:

  • gcr.io/[PROJECT_ID]
  • [REGION].gcr.io/[PROJECT_ID],其中[REGION]可以是useuasia

“存储库”(使用GCP术语)也可以指代:

  • [REGION].gcr.io/[PROJECT_ID]/my-repo
  • [REGION].gcr.io/[PROJECT_ID]/my-repo/my-sub-repo
  • ...

Terraform数据源中没有这些存储库类型的概念。

话虽如此:

  • 无法创建“根存储库”,并由Google管理(如果出现新区域xy,则xy.gcr.io将由Google创建)
  • 用于订购图像的其他存储库(例如,每个开发人员或每个项目的存储库)似乎是一种抽象概念,更像directories in Google Cloud Storage。当您推送图像时,它们是“即时”创建的,如果其中没有图像,则它们将不存在。要完成GCS目录和GCR存储库之间的类比,请注意,也没有google_storage_bucket_directory资源

对于后一种存储库(my-repomy-repo/my-subrepo),无法配置基础存储桶:根据不同的存储库,存储桶将始终为artifacts.[PROJECT-ID].appspot.com[REGION].artifacts.[PROJECT-ID].appspot.com。 “根存储库”。无法隔离不同存储桶中的不同存储库。

因此,总而言之:您无法通过Web UI等来创建GCR信息库,无论它是Terraform还是gcloud