# GCP GCR

### Используйте Edgegap с Google Container Registry

### Вам потребуется

* [x] Регион GCP вашего GCR
* [x] Название вашего проекта GCP
* [x] Ваш JSON-ключ для пользователя IAM

### Чтобы получить эту информацию, перейдите в консоль GCP

1. Перейдите в ваш проект
2. Перейдите в Container Registry
3. Скопируйте полное имя репозитория

### Разделить полное имя репозитория

Учитывая этот полный репозиторий: **gcr.io/project-name/example**

Ваш **Репозиторий** будет: **gcr.io**

и ваш **Образ** будет: **project-name/example**

### Сгенерируйте файл JSON-ключа

Следуйте [**Шагам GCP**](https://cloud.google.com/container-registry/docs/advanced-authentication#json-key) чтобы сгенерировать этот файл.

{% hint style="warning" %}
Пожалуйста, убедитесь, что ваш `Сервисный аккаунт Google` имеет необходимые разрешения для управления вашим реестром контейнеров
{% endhint %}

В итоге у вас будет файл, содержащий нечто подобное

```json
{
  "type": "service_account",
  "project_id": "project-name",
  "private_key_id": "12345abcdef12345",
  "private_key": "-----BEGIN PRIVATE KEY-----\n[...]\n-----END PRIVATE KEY-----\n",
  "client_email": "example@project-name.iam.gserviceaccount.com",
  "client_id": "1234567890",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/example%40project-name.iam.gserviceaccount.com"
}
```

### Добавьте приложение на Edgegap

#### **Пример API**

{% hint style="info" %}
Имя пользователя всегда будет **\_json\_key**
{% endhint %}

```json
{
    [...]
    "docker_repository": "gcr.io",
    "docker_image": "project-name/repository-name",
    "docker_tag": "v1",
    "private_username": "_json_key",
    "private_token": "<Содержимое файла JSON-ключа в виде JSON-строки>",
    [...]
}
```

Приватный токен будет выглядеть примерно так

```json
{
    [...]
    "private_token": "{\"type\": \"service_account\", \"project_id\": \"project-name\", \"private_key_id\": \"12345abcdef12345\", \"private_key\": \"-----BEGIN PRIVATE KEY-----\\n[...]\\n-----END PRIVATE KEY-----\\n\", \"client_email\": \"example@project-name.iam.gserviceaccount.com\", \"client_id\": \"1234567890\", \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\", \"token_uri\": \"https://oauth2.googleapis.com/token\", \"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\", \"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/example%40project-name.iam.gserviceaccount.com\"}",
    [...]
}
```

#### **Из панели управления**

На нашей панели управления **Токен приватного реестра** будет содержимым вашего **Файл JSON-ключа**

**Вы можете скопировать содержимое напрямую, не приводя его к строке**

<figure><img src="https://3845012722-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fgit-blob-7302363fb151d9cdc2e8f010c04158138c9379f0%2Fgcr-example.png?alt=media" alt=""><figcaption></figcaption></figure>
