- Определена архитектура 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 ресурс)
60 lines
1.8 KiB
Terraform
60 lines
1.8 KiB
Terraform
// 2026-04-01 — main.tf: провайдеры и объявления переменных.
|
|
// Этот файл не нужно редактировать. Все настройки — в terraform.tfvars.
|
|
|
|
terraform {
|
|
required_providers {
|
|
nubes = {
|
|
source = "terra.k8c.ru/nubes/nubes"
|
|
version = "5.0.55"
|
|
}
|
|
}
|
|
}
|
|
|
|
// ── Объявления переменных ─────────────────────────────────────────────────────
|
|
// Значения задаются в terraform.tfvars — не трогать этот файл.
|
|
|
|
variable "api_token" {
|
|
type = string
|
|
sensitive = true
|
|
description = "Nubes API token"
|
|
}
|
|
|
|
variable "s3_uid" {
|
|
type = string
|
|
sensitive = true
|
|
description = "UUID S3-bucket для бэкапов PostgreSQL"
|
|
}
|
|
|
|
variable "realm" {
|
|
type = string
|
|
description = "Realm — идентификатор зоны/проекта в Nubes"
|
|
}
|
|
|
|
variable "pg_resource_name" {
|
|
type = string
|
|
description = "Имя инстанса PostgreSQL (уникально в рамках realm)"
|
|
}
|
|
|
|
variable "pg_username" {
|
|
type = string
|
|
description = "Имя пользователя PostgreSQL"
|
|
}
|
|
|
|
variable "pg_db_name" {
|
|
type = string
|
|
description = "Имя создаваемой базы данных"
|
|
}
|
|
|
|
variable "pg_role" {
|
|
type = string
|
|
description = "Роль пользователя"
|
|
}
|
|
|
|
// ── Провайдер ─────────────────────────────────────────────────────────────────
|
|
|
|
provider "nubes" {
|
|
api_token = var.api_token
|
|
log_level = "debug"
|
|
api_endpoint = "https://deck-api-test.ngcloud.ru/api/v1/index.cfm"
|
|
}
|