Во-первых, понятие Terraform google_container_registry_repository
кажется неполным, потому что оно представляет только «корневые репозитории»:
gcr.io/[PROJECT_ID]
[REGION].gcr.io/[PROJECT_ID]
, где [REGION]
можетбыть us
, eu
или asia
Принимая во внимание, что «хранилище» (в терминологии GCP) также может означать:
[REGION].gcr.io/[PROJECT_ID]/my-repo
[REGION].gcr.io/[PROJECT_ID]/my-repo/my-sub-repo
- ...
Нет представления об этих типах хранилищ в источнике данных Terraform.
При этом:
- "корневые репозитории" не могут быть созданы и управляются Google (если появляется новый регион
xy
, то Google создаст xy.gcr.io
) - другие репозитории, используемые для заказаизображения (например, репозиторий на разработчика или на проект) выглядят как абстрактное понятие, скорее как каталоги в облачном хранилище Google .Они создаются «на лету», когда вы нажимаете на изображение, и они не существуют, если в нем нет изображения.Чтобы завершить аналогию между каталогами GCS и репозиториями GCR, обратите внимание, что также нет
google_storage_bucket_directory
ресурсов
Для последнего типа репозиториев (my-repo
, my-repo/my-subrepo
) базовое хранилищене может быть настроено: оно всегда будет artifacts.[PROJECT-ID].appspot.com
или [REGION].artifacts.[PROJECT-ID].appspot.com
, в зависимости от «корневого хранилища».Невозможно изолировать разные репозитории в разных сегментах.
Итак, в заключение: вы не можете создать репозиторий GCR, будь то с Terraform, с gcloud
, из веб-интерфейса и т. Д.