Deckhouse Platform в Google Cloud

Чтобы Deckhouse Platform смогла управлять ресурсами в облаке Google Cloud, необходимо создать сервисный аккаунт. Подробная инструкция по этому действию доступна в документации. Здесь мы представим краткую последовательность необходимых действий:

Список необходимых ролей:

  • roles/compute.admin
  • roles/iam.serviceAccountUser
  • roles/networkmanagement.admin

Экспортируйте переменные окружения:

export PROJECT=sandbox
export SERVICE_ACCOUNT_NAME=deckhouse
export PROJECT=sandbox export SERVICE_ACCOUNT_NAME=deckhouse

Выберите project:

gcloud config set project $PROJECT
gcloud config set project $PROJECT

Создайте service account:

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME

Прикрепите роли к service account:

for role in roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin; do \
  gcloud projects add-iam-policy-binding ${PROJECT} --member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com --role=${role}; done
for role in roles/compute.admin roles/iam.serviceAccountUser roles/networkmanagement.admin; do \ gcloud projects add-iam-policy-binding ${PROJECT} --member=serviceAccount:${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com --role=${role}; done

Выполните проверку ролей service account:

gcloud projects get-iam-policy ${PROJECT} --flatten="bindings[].members" --format='table(bindings.role)' \
    --filter="bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com"
gcloud projects get-iam-policy ${PROJECT} --flatten="bindings[].members" --format='table(bindings.role)' \ --filter="bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com"

Создайте service account key:

gcloud iam service-accounts keys create --iam-account ${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com \
    ~/service-account-key-${PROJECT}-${SERVICE_ACCOUNT_NAME}.json
gcloud iam service-accounts keys create --iam-account ${SERVICE_ACCOUNT_NAME}@${PROJECT}.iam.gserviceaccount.com \ ~/service-account-key-${PROJECT}-${SERVICE_ACCOUNT_NAME}.json