Я создал проект GCP, используя terraform, но он не отображается в списке проектов.Зачем? - PullRequest
0 голосов
/ 19 сентября 2018

Я следую учебному пособию на 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 Ответ

0 голосов
/ 20 сентября 2018

Я думаю, что нашел проблему.Мне нужно было предоставить учетной записи владельца домена 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",
  ]
}

https://console.cloud.google.com/iam-admin/iam?authuser=1&project=tf-foobar&organizationId=xxxxxxxxxxx

Итак, мой недавно созданный проект теперь виден:

$ gcloud projects list
PROJECT_ID          NAME                   PROJECT_NUMBER
terraform-admin     terraform-admin        300000000000
tf-foobar           tf-foobar              111111111111
...