---
title: "Создать реестр Container Registry и токен для авторизации через Terraform"
sidebar_label: "Создать реестр и токен для авторизации"
description: "Как создать реестр Container Registry и добавить токен для авторизации"
sidebar_position: 1
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import ConfigureProviders from '@site/terraform/_partials/common/configure-providers.mdx'
import ConfigureProvidersConfig from '@site/terraform/_partials/common/configure-providers-config.mdx'
import CreateResourcesAlert from '@site/terraform/_partials/common/create-resources-alert.mdx'

# Создать реестр Container Registry и токен для авторизации через Terraform

<CreateResourcesAlert />

<br />

1. Опционально: [настройте провайдеры](#configure-providers).
2. [Создайте реестр](#create-registry).
3. [Создайте токен для авторизации](#create-token).

## Конфигурационные файлы \{#config}

<details>
  <summary>Пример файла для настройки провайдеров</summary>

  <ConfigureProvidersConfig />
</details>

<details>
  <summary>Пример файла для создания реестра и токена для авторизации</summary>

  ```hcl
  resource "selectel_craas_registry_v1" "registry_1" {
    name       = "my-first-registry"
    project_id = selectel_vpc_project_v2.project_1.id
  }

  resource "selectel_craas_token_v2" "token_1" {
    project_id = selectel_vpc_project_v2.project_1.id
    name           = "token-name"
    mode_rw        = true
    all_registries = true
    registry_ids   = []
    is_set         = true
    expires_at     = "2029-01-01T00:00:00Z"
  }
  ```
</details>

## 1. Опционально: настроить провайдеры \{#configure-providers}

Если вы [настроили провайдеры](/terraform/configure-terraform-environment/#configure-providers) Selectel и OpenStack, пропустите этот шаг.

<ConfigureProviders />

## 2. Создать реестр \{#create-registry}

```hcl
resource "selectel_craas_registry_v1" "registry_1" {
  name       = "my-first-registry"
  project_id = selectel_vpc_project_v2.project_1.id
}
```

Посмотрите подробное описание ресурса [selectel\_craas\_registry\_v1](/terraform/selectel-provider-reference/resources/craas_registry_v1/).

## 3. Создать токен \{#create-token}

```hcl
resource "selectel_craas_token_v2" "token_1" {
  project_id = selectel_vpc_project_v2.project_1.id
  name           = "token-name"
  mode_rw        = true
  all_registries = true
  registry_ids   = []
  is_set         = true
  expires_at     = "2029-01-01T00:00:00Z"
}
```

Здесь:

* `mode_rw` — права доступа:

  * `true` — на запись и чтение. Будет доступно добавление, скачивание и удаление образов и чартов из реестра;
  * `false` — только на чтение. Будет доступно скачивание образов и чартов из реестра;

* `all_registries` — указывает, предоставляет ли токен доступ ко всем реестрам:

  * `true` — доступ ко всем реестрам. Токен будет действителен и для новых реестров, которые вы будете создавать в этом проекте;
  * `false` — доступ к определенным реестрам. Укажите ID реестров, к которым будет предоставлен доступ, в аргументе `registry_ids`;

* опционально: `registry_ids` — ID реестров, к которым токен предоставляет доступ, можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/craas/): в верхнем меню нажмите **Продукты** и выберите **Container Registry** → скопируйте ID под именем реестра;

* `is_set` — указывает, ограничен ли срок действия токена:

  * `true` — срок действия токена неограничен. Токен будет действителен и для новых реестров, которые вы будете создавать в этом проекте;
  * `false` — срок действия токена ограничен. Укажите срок действия токена в аргументе `expires_at`;

* опционально: `expires_at` — срок действия токена в формате RFC3339, например `2029-01-01T00:00:00Z`.

Посмотрите подробное описание ресурса [selectel\_craas\_token\_v2](/terraform/selectel-provider-reference/resources/craas_token_v2/).

<Formbricks />
