nubes_k8s_velero — Velero¶
Резервное копирование и восстановление Kubernetes-кластеров (Velero) с хранением бэкапов в S3. Отдаёт ссылки на мониторинг и список бэкапов.
Специфика Nubes: destroy ≠ удаление
terraform destroy по умолчанию усыпляет инстанс (suspend), а не удаляет.
Подробности — в разделе «Жизненный цикл» и в общем
руководстве «Как работает провайдер».
Пример использования¶
resource "nubes_k8s_velero" "backup" {
resource_name = "my-velero"
operation_timeout = "15m"
startup_configuration = {
resource_realm = "k8s-3-sandbox-nubes-ru"
}
cluster_configuration = {
cpu = 1000
memory = 2048
replicas = 1 # 1 | 2 | 3
}
node_agent_configuration = {
cpu = 2000
memory = 2048
}
backup_configuration = {
s3_bucket_uid = nubes_s3bucket.backup.id # ⚠️ обязателен
}
}
Argument Reference¶
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
resource_name |
string | да | — | Имя инстанса |
startup_configuration¶
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
resource_realm |
string | да | — | Платформа: iot-naeel, k8s-3-sandbox-nubes-ru, k8s-4-sandbox-nubes-ru |
cluster_configuration¶
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
cpu |
integer | нет | 1000 |
Квота CPU пода (milicores) |
memory |
integer | нет | 2048 |
Квота памяти пода (MB) |
replicas |
integer | нет | 1 |
Число реплик: 1, 2, 3 |
node_agent_configuration¶
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
cpu |
integer | нет | 2000 |
Квота CPU node-agent (milicores) |
memory |
integer | нет | 2048 |
Квота памяти node-agent (MB) |
backup_configuration¶
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
s3_bucket_uid |
string (uuid) | да | — | UUID существующего бакета S3 (сервис 13) |
retain |
integer | нет | 7 |
Срок хранения бэкапов |
schedule |
string | нет | 0 0 * * * |
Cron-расписание |
Общие атрибуты (есть у всех ресурсов):
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
operation_timeout |
string | нет | — | Максимальное время ожидания операции (напр. 15m) |
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.instanceUid |
string | UUID инстанса |
state_out.backups |
string (json) | Список бэкапов ({}, пока нет бэкапов) |
state_out_flat["monitoring.logs"] |
string | Ссылка на логи (Grafana) |
state_out_flat["monitoring.resourceMetrics"] |
string | Ссылка на метрики (Grafana) |
state_params / state_params_flat |
map | backupConfiguration.s3BucketUid, clusterConfiguration, nodeAgentConfiguration |
vault_secrets |
map (sensitive) | Секреты из Vault (пусто) |
vault_fields |
list | [] |
ℹ️ У сервиса нет собственного
connectionUrl— только мониторинг и список бэкапов.
Жизненный цикл ¶
| Флаг | Дефолт | Поведение при 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 15 минут.
⚠️ Из Terraform это невозможно — операция delete для усыплённого инстанса
недоступна. Удаляйте его вручную в Личном кабинете (ЛК).
- Инстанс в статусе «not created» (после упавшего create) блокирует имя и не удаляется через API — чистится вручную в Личном кабинете.
reconcileзапускается из Terraform ресурсомnubes_service_operation(operation = "reconcile", уникальныйrun_id).
Operations¶
| Операция | Доступно из Terraform | Комментарий |
|---|---|---|
create |
✅ apply |
Создание инстанса |
modify |
✅ apply |
Меняются cluster_configuration, node_agent_configuration |
suspend |
✅ destroy (при suspend_on_destroy=true) |
Усыпление |
resume |
✅ apply (при adopt_existing_on_create=true) |
Пробуждение |
delete |
✅ destroy (suspend_on_destroy=false) |
Удаление инстанса в облаке. Только для работающего (running); усыплённый — вручную в ЛК |
reconcile |
✅ через nubes_service_operation |
Синхронизация состояния (универсальная операция) |