Я создал проект GCP, используя terraform, но он не отображается в списке проектов. Зачем?
Я следую инструкциям на https://cloud.google.com/community/tutorials/managing-gcp-projects-with-terraform
В основном это сводится к созданию terraform-admin
проект по умолчанию с правами быть roles/resourcemanager.projectCreator
$ gcloud organizations get-iam-policy $TF_VAR_org_id
bindings:
...snipped...
- members:
- domain:raverun.com
- serviceAccount:terraform@terraform-admin.iam.gserviceaccount.com
role: roles/resourcemanager.projectCreator
Я не собираюсь дублировать project.tf
файл здесь, но основные пункты:
provider "google" {
...snipped...
}
resource "google_project" "proj" {
...snipped...
project_id = "tf-foobar"
}
resource "google_project_services" "svcs" {
...snipped...
}
Перед запуском terraform apply
$ gcloud projects list
PROJECT_ID NAME PROJECT_NUMBER
terraform-admin terraform-admin 300000000000
После запуска terraform apply
$ terraform apply
...snipped...
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
Outputs:
project_id = tf-foobar
$ gcloud projects list
PROJECT_ID NAME PROJECT_NUMBER
terraform-admin terraform-admin 300000000000
Мой вопрос, почему новый проект tf-foobar
не появляется?
1 ответ
Решение
Я думаю, что нашел проблему. Мне нужно было дать учетную запись владельца домена owner@mydomain.com
роль проекта, которая имеет право редактировать вновь созданный проект. Я попробовал это:
resource "google_project_iam_binding" "projiambinding1" {
project = "${google_project.proj.project_id}"
role = "roles/editor"
members = [
"user:owner@mydomain.com",
"serviceAccount:xxxxxxxxx-compute@developer.gserviceaccount.com",
"serviceAccount:yyyyyyyyyyyyy@cloudservices.gserviceaccount.com",
]
}
Итак, мой недавно созданный проект теперь виден:
$ gcloud projects list
PROJECT_ID NAME PROJECT_NUMBER
terraform-admin terraform-admin 300000000000
tf-foobar tf-foobar 111111111111