Как создать репозиторий gcr с помощью terraform? - PullRequest
0 голосов
/ 11 декабря 2018

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

Существует источник данных, но нет ресурса.

У gcr нет прямого API.Есть ли обходной путь для создания репозитория gcr с помощью terraform?Могу ли я создать папку в этом «артефакте», который использует gcr?Есть ли способ вручную терраформировать репозиторий gcr?

1 Ответ

0 голосов
/ 20 декабря 2018

Во-первых, понятие 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, из веб-интерфейса и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...