- Определена архитектура managed IoT service - Согласовано решение: RabbitMQ (MVP), потом Kafka; EMQX + CRD контроллер - Создан подробный план для Sonnet (doc/iot-mvp-plan.md) - Добавлено правило в copilot-instructions: лог мышления в doc/thinking/ по датам - Полный ход рассуждений в doc/thinking/2026-04-04.md Ключевые решения: - IoT код в iot/ (легко вынести потом) - CRD IoTDevice + контроллер (как все остальное в sless) - EMQX HTTP Auth Backend для динамической аутентификации устройств - Архитектура broker-agnostic (легко переключить на Kafka) - Terraform: расширяем текущий provider (sless_iot_device ресурс)
44 lines
1.4 KiB
Terraform
44 lines
1.4 KiB
Terraform
// 2026-03-25 — main.tf для примера с vApp + ВМ (Виртуальный датацентр Nubes).
|
|
// Провайдер nubes. Sless-провайдер не нужен — пример чисто инфраструктурный.
|
|
|
|
terraform {
|
|
required_providers {
|
|
nubes = {
|
|
source = "terra.k8c.ru/nubes/nubes"
|
|
version = "5.0.51"
|
|
}
|
|
sless = {
|
|
source = "terra.k8c.ru/naeel/sless"
|
|
version = "~> 0.1"
|
|
}
|
|
}
|
|
}
|
|
|
|
# ------------------------------------------------------------------
|
|
# Переменные
|
|
# ------------------------------------------------------------------
|
|
|
|
variable "vm_public_key" {
|
|
type = string
|
|
sensitive = true
|
|
description = "Публичный SSH-ключ для ВМ. Приватный ключ: ~/terra/sless/examples/VM/vm_key"
|
|
}
|
|
|
|
variable "api_token" {
|
|
type = string
|
|
sensitive = true
|
|
description = "Nubes API token"
|
|
}
|
|
|
|
# ------------------------------------------------------------------
|
|
# Провайдер
|
|
# ------------------------------------------------------------------
|
|
|
|
# API Dashboard (для Terraform-провайдеров): https://deck-api-test.ngcloud.ru/api/v1/index.cfm
|
|
# UI облака (только браузер): https://deck-test.ngcloud.ru/
|
|
provider "nubes" {
|
|
api_token = var.api_token
|
|
api_endpoint = "https://deck-api-test.ngcloud.ru/api/v1/index.cfm"
|
|
log_level = "debug" # none | info | debug, default = "none"
|
|
}
|