Skip to content

nubes_s3 — S3 Object Storage

Объектное хранилище S3 (Ceph) с квотами на пользователя. Сервис создаёт корневого пользователя хранилища и отдаёт адрес подключения и учётные данные.

Инструкция по сервису Отдельная страница: руководство по сервису.

Специфика Nubes: destroy ≠ удаление terraform destroy по умолчанию усыпляет инстанс (suspend), а не удаляет. Подробности — в разделе «Жизненный цикл» и в общем руководстве «Как работает провайдер».


Пример использования

resource "nubes_s3" "storage" {
  resource_name = "my-s3"
  display_name  = "my_s3_storage" # без дефисов
  # resource_realm = "s3.msk-1.ngcloud.ru" # дефолт (фиксирован)
}

resource "nubes_s3_sub_user" "app" {
  s3_id          = nubes_s3.storage.id
  sub_user_name  = "app-user"
  sub_user_access = "readwrite" # read | write | readwrite | full
}

Обратите внимание: display_name проверяется паттерном ^[a-zA-Z0-9_]{1,61}[a-zA-Z0-9]$ — без дефисов, первый и последний символ должны быть буквой или цифрой.


Argument Reference

Имя Тип Обязательный По умолчанию Описание Ограничения
resource_name string да — Имя инстанса —
display_name string да — Человеко-читаемое имя (обычно имя клиента) ^[a-zA-Z0-9_]{1,61}[a-zA-Z0-9]$
resource_realm string нет s3.msk-1.ngcloud.ru «Платформа» — S3-кластер Ceph s3.msk-1.ngcloud.ru
max_buckets_per_user integer нет 25* Количество бакетов пользователя —
max_objects_per_bucket integer нет 10000000* Количество объектов в бакете —
max_size_gb_per_user integer нет 1024* Объём на пользователя (GB) —

* Значения по умолчанию наблюдались в state_params живого инстанса.

Общие атрибуты (есть у всех ресурсов):

Имя Тип Обязательный По умолчанию Описание
operation_timeout string нет — Максимальное время ожидания операции
log_level string нет none Логирование стадий: none, info, debug
suspend_on_destroy bool нет true При destroy — усыпить вместо удаления
keep_on_destroy bool нет false При destroy — ничего не делать в облаке (state_only)
adopt_existing_on_create bool нет false Авто-подхват существующего инстанса при apply

Attribute Reference

Имя Тип Описание
id string UUID инстанса
state_out.urlConnect string Адрес подключения: https://s3.msk-1.ngcloud.ru
state_out.instanceUid string UUID инстанса
state_out.isTrial string Признак триала ("true"), срок — dtEndTrial (14 дней)
state_out_flat["monitoring.s3ceph.url"] string Ссылка на мониторинг (Grafana)
state_params.userName string Имя пользователя хранилища
state_params.resourceRealm string s3.msk-1.ngcloud.ru
state_params.maxBucketsPerUser / maxObjectsPerBucket / maxSizeGbPerUser integer Фактические квоты
vault_secrets map (sensitive) Учётные данные (users)
vault_fields list ["users"]
vault_url / vault_user_path string Адрес/путь Vault
output "s3_url" { value = nubes_s3.storage.state_out_flat["urlConnect"] }

Жизненный цикл

Флаг Дефолт Поведение при destroy
suspend_on_destroy true Инстанс переводится в suspend (не удаляется)
suspend_on_destroy false Выполняется операция delete — инстанс удаляется в облаке
keep_on_destroy false Если true — ресурс вообще не трогается в облаке (state_only)

Возврат из suspend: повторный terraform apply с adopt_existing_on_create = true — провайдер найдёт инстанс по имени и выполнит resume (тот же id).

Зачем нужно усыпление suspend — временная остановка: ресурсы высвобождаются, а инстанс можно вернуть в работу в любой момент повторным apply.

Удаление усыплённого инстанса Удалить усыплённый инстанс можно, когда он пробыл в suspend 14 дней.

⚠️ Из Terraform это невозможно — операция delete для усыплённого инстанса недоступна. Удаляйте его вручную в Личном кабинете (ЛК).

Триальный режим Сервис создаётся в триальном режиме: isTrial = "true", срок — 14 дней (dtEndTrial).

  • Инстанс в статусе «not created» (после упавшего create) блокирует имя и не удаляется через API — чистится вручную в Личном кабинете.
  • reconcile запускается из Terraform ресурсом nubes_service_operation (operation = "reconcile", уникальный run_id).

Подресурсы

nubes_s3_sub_user

Имя Тип Обязательный По умолчанию Описание Ограничения
s3_id string (uuid) да — UUID хранилища S3 —
sub_user_name string да — Имя суб-пользователя —
sub_user_access string да — Уровень доступа read, write, readwrite, full

Общие атрибуты подресурсов adopt_existing_on_create, keep_on_destroy, skip_missing_on_delete, operation_timeout, log_level. Идентификатор: <uid>:sub_user:<hash>.


Operations

Операция Доступно из Terraform Комментарий
create ✅ apply Создание хранилища
modify ✅ apply Меняются квоты max_buckets_per_user, max_objects_per_bucket, max_size_gb_per_user
suspend ✅ destroy (при suspend_on_destroy=true) Усыпление
resume ✅ apply (при adopt_existing_on_create=true) Пробуждение
delete ✅ destroy (suspend_on_destroy=false) Удаление инстанса в облаке. Только для работающего (running); усыплённый — вручную в ЛК
create_sub_user / delete_sub_user ✅ через nubes_s3_sub_user Управление суб-пользователями
reconcile ✅ через nubes_service_operation Синхронизация состояния (универсальная операция)

See the Terraform Registry attribute reference.