Files
sless/examples/README.md
T
Repinoid 6dc2dc69ba IoT MVP: архитектура, план реализации, лог рассуждений
- Определена архитектура 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 ресурс)
2026-04-04 08:34:14 +03:00

2.3 KiB

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