nubes_akhq — Akhq¶
Веб-интерфейс для Apache Kafka: просмотр топиков, consumer-групп, сообщений, ACL,
состояния брокеров и метаданных. Работает поверх существующего кластера Kafka
(nubes_kafka), отдаёт ссылку на веб-UI.
Инструкция по сервису
Отдельная страница: руководство по сервису.
Специфика Nubes: destroy ≠ удаление
У этого ресурса terraform destroy по умолчанию усыпляет инстанс (suspend),
а не удаляет. Подробности — в разделе «Жизненный цикл» и в общем
руководстве «Как работает провайдер».
AKHQ создаётся поверх существующего Kafka
Для развёртывания необходим уже развёрнутый кластер Kafka (nubes_kafka).
kafka_uid в схеме помечен как необязательный, однако на практике обязателен
(см. ниже в Argument Reference).
Пример использования¶
resource "nubes_kafka" "cluster" {
resource_name = "my-kafka"
startup_configuration = { resource_realm = "k8s-4-sandbox-nubes-ru" }
cluster_configuration = {
cpu = 2000
memory = 2048
disk = 1
replicas = 1
}
}
resource "nubes_akhq" "ui" {
resource_name = "my-akhq"
resource_realm = "k8s-4-sandbox-nubes-ru" # та же платформа, что у Kafka
domain = "my-akhq"
# ⚠️ обязателен на практике: UUID существующего кластера Kafka (сервис 116)
kafka_uid = nubes_kafka.cluster.id
resource_cpu = 500 # min 500
resource_memory = 512 # min 512
resource_instances = 1 # min 1
}
⚠️
kafka_uidв схеме помечен как необязательный, однако на практике без него инстанс не создаётся — указывайте UUID существующего кластера Kafka.
Argument Reference¶
Параметры создания ресурса:
| Имя | Тип | Обязательный | По умолчанию | Описание | Ограничения |
|---|---|---|---|---|---|
resource_name |
string | да | — | Имя инстанса | — |
resource_realm |
string | да | — | Платформа/K8s-кластер для развёртывания | iot-naeel, k8s-3-sandbox-nubes-ru, k8s-4-sandbox-nubes-ru |
domain |
string | да | — | FQDN или имя; при FQDN проверяется A-запись DNS | DNS-имя/FQDN |
kafka_uid |
string (uuid) | нет (фактически да) | — | UUID экземпляра Kafka (сервис 116) | ссылка на nubes_kafka |
resource_cpu |
integer | нет | 500 |
Квота CPU пода (milicores) | ≥ 500 |
resource_memory |
integer | нет | 512 |
Квота памяти пода (MB) | ≥ 512 |
resource_instances |
integer | нет | 1 |
Количество узлов | ≥ 1 |
Общие атрибуты (есть у всех ресурсов):
| Имя | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
operation_timeout |
string | нет | — | Максимальное время ожидания операции (напр. 15m) |
log_level |
string | нет | none |
Логирование стадий операции: none, info, debug |
suspend_on_destroy |
bool | нет | true |
При destroy — усыпить (true) вместо удаления (false) |
keep_on_destroy |
bool | нет | false |
При destroy — ничего не делать в облаке (state_only); приоритетнее suspend |
adopt_existing_on_create |
bool | нет | false |
Авто-подхват существующего инстанса при apply (=import) |
Attribute Reference¶
Вычисляемые атрибуты (только чтение):
| Имя | Тип | Описание |
|---|---|---|
id |
string | UUID инстанса |
state_out |
map | Ответ API: connectionUrl, instanceUid, monitoring (json) |
state_out_flat |
map | То же плоско: connectionUrl, monitoring.logs, monitoring.resourceMetrics |
state_params |
map | Параметры, отправленные в API |
state_params_flat |
map | То же плоско |
vault_secrets |
map (sensitive) | Секреты из Vault |
vault_url |
string | Адрес Vault для ресурса |
vault_user_path |
string | Путь пользователя в Vault |
vault_fields |
list | Список доступных ключей секретов |
Жизненный цикл ¶
⚠️ terraform destroy не удаляет инстанс, а усыпляет его
(suspend_on_destroy = true по умолчанию). Данные сохраняются.
| Флаг | Дефолт | Поведение при destroy |
|---|---|---|
suspend_on_destroy |
true |
Инстанс переводится в suspend (не удаляется) |
suspend_on_destroy |
false |
Выполняется операция delete — инстанс удаляется в облаке |
keep_on_destroy |
false |
Если true — облако не трогается, ресурс только убирается из состояния (state_only); приоритетнее suspend_on_destroy |
Возврат из suspend: повторный terraform apply с adopt_existing_on_create = true
— провайдер найдёт инстанс по имени и выполнит resume (тот же id).
Зачем нужно усыпление
suspend — временная остановка: ресурсы высвобождаются, а инстанс можно
вернуть в работу в любой момент повторным apply.
Удаление усыплённого инстанса
Удалить усыплённый инстанс можно, когда он пробыл в suspend 15 минут.
⚠️ Из Terraform это невозможно — операция delete для усыплённого инстанса
недоступна. Удаляйте его вручную в Личном кабинете (ЛК).
- Инстанс в статусе «not created» (после упавшего create) блокирует имя и не удаляется через API — чистится вручную в Личном кабинете.
reconcileнедоступен — операция отсутствует в API сервиса.
Operations¶
| Операция | Доступно из Terraform | Комментарий |
|---|---|---|
create |
✅ apply |
Создание инстанса |
modify |
✅ apply (изменение параметров) |
Меняется kafka_uid |
suspend |
✅ destroy (при suspend_on_destroy=true) |
Усыпление |
resume |
✅ apply (при adopt_existing_on_create=true) |
Пробуждение |
delete |
✅ destroy (suspend_on_destroy=false) |
Удаление инстанса в облаке. Только для работающего (running); усыплённый — вручную в ЛК |