- Определена архитектура 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 ресурс)
sless — примеры
⚠️ Тестовое окружение. Все примеры работают с тестовым API Nubes и тестовым кластером sless. Не используйте в продакшне без предварительного согласования.
sless — платформа для запуска serverless-функций на базе Kubernetes.
Разработчик загружает код, платформа собирает Docker-образ и разворачивает его в кластере.
Всё описывается декларативно через Terraform.
Ресурсы Terraform-провайдера
| Ресурс | Что делает |
|---|---|
sless_job |
Разовый запуск: выполняет код один раз и завершается (установка ПО, миграции и т.д.) |
sless_service |
HTTP-сервис: всегда запущен, отвечает на запросы, имеет постоянный URL — примеры появятся позднее |
Конфигурация провайдера
provider "sless" {
endpoint = "https://sless.kube5s.ru"
token = var.api_token
}
Токен задаётся в terraform.tfvars (файл в .gitignore, не попадает в git).
Примеры
VM/ — Виртуальная машина в Nubes vDC
Создаёт vApp + Ubuntu 22.04 VM в облаке Nubes. После создания — автоматически устанавливает ПО (nginx, Docker, пакеты) через serverless-джобы (sless_job) по SSH.
В этом примере используются только разовые джобы (
sless_job). Примеры с HTTP-сервисами (sless_service) появятся позднее.
Полезные команды
# Посмотреть состояние ресурсов:
terraform show
# Повторно запустить установку ПО: увеличить install_run_id в terraform.tfvars, затем:
terraform apply
# Удалить все ресурсы:
terraform destroy