Compare languages | Cloud provider — GCP: Preparing environment

You need to create a service account so that Deckhouse can manage resources in the Google Cloud. Below is a brief sequence of steps to create a service account. If you need detailed instructions, you can find them in the provider’s documentation.

Чтобы Deckhouse мог управлять ресурсами, в Google Cloud необходимо создать service account. Далее представлена краткая последовательность действий по созданию service account. Если вам необходима более подробная инструкция, вы можете найти ее в документации провайдера.

Note! The created service account key cannot be restored, you can only delete and create a new one.

Внимание! Созданный service account key невозможно восстановить, только удалить и создать новый.

Setup using Google Cloud Console

Настройка через Google Cloud Console

Follow this link, select your project and create a new service account or select an existing one.

Перейдите по ссылке, выберите проект и создайте новый service account (также можно выбрать уже существующий).

The account must be assigned several necessary roles:

Созданному service account’у должны быть присвоены несколько необходимых ролей:

text Compute Admin Service Account User Network Management Admin

text Compute Admin Service Account User Network Management Admin

You can add roles when creating a service account or edit them here.

Роли можно присвоить на этапе создания service account’а либо изменить на этой странице.

To create a service account key in JSON format, click on three vertical dots in the Actions column and select Manage keys. Next, click on Add key -> Create new key -> Key type -> JSON.

Чтобы получить service account key в JSON-формате, на странице в колонке Actions нажмите на три вертикальные точки и выберите Manage keys. Затем нажмите Add key -> Create new key -> Key type -> JSON.

Setup using gcloud CLI

Настройка через gcloud CLI

To configure via the command line interface, follow these steps:

Для настройки через интерфейс командной строки выполните следующие шаги:

  1. Export environment variables:
  1. Экспортируйте переменные окружения:

shell export PROJECT_ID=sandbox export SERVICE_ACCOUNT_NAME=deckhouse

shell export PROJECT_ID=sandbox export SERVICE_ACCOUNT_NAME=deckhouse

  1. Select a project:
  1. Выберите project:

shell gcloud config set project $PROJECT_ID

shell gcloud config set project $PROJECT_ID

  1. Create a service account:
  1. Создайте service account:

shell gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME

shell gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME

  1. Connect roles to the service account:
  1. Присвойте роли созданному service account:

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

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

List of roles required:

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

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

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

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

shell gcloud projects get-iam-policy ${PROJECT_ID} –flatten=”bindings[].members” –format=’table(bindings.role)’
–filter=”bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com”

shell gcloud projects get-iam-policy ${PROJECT_ID} –flatten=”bindings[].members” –format=’table(bindings.role)’
–filter=”bindings.members:${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com”

  1. Create a service account key:
  1. Создайте service account key:

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

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