- Определена архитектура 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 ресурс)
43 lines
1.6 KiB
Terraform
43 lines
1.6 KiB
Terraform
// 2026-04-01 — outputs.tf: данные подключения к PostgreSQL после apply.
|
|
//
|
|
// Пароль не выводим напрямую — только через sensitive output (не появляется
|
|
// в логах CI по умолчанию). Для явного показа: terraform output pg_password
|
|
|
|
output "pg_instance_id" {
|
|
description = "ID инстанса PostgreSQL в Nubes"
|
|
value = nubes_postgres.pg_test_instance.id
|
|
}
|
|
|
|
output "pg_host" {
|
|
description = "Внутренний адрес master-ноды PostgreSQL"
|
|
value = local.pg_host
|
|
}
|
|
|
|
output "pg_port" {
|
|
description = "Порт PostgreSQL"
|
|
value = local.pg_port
|
|
}
|
|
|
|
output "pg_database" {
|
|
description = "Имя базы данных"
|
|
value = nubes_postgres_database.pg_test_db.db_name
|
|
}
|
|
|
|
output "pg_username" {
|
|
description = "Имя пользователя PostgreSQL"
|
|
value = nubes_postgres_user.pg_test_user.username
|
|
}
|
|
|
|
output "pg_password" {
|
|
description = "Пароль пользователя из vault_secrets (пустой на первом apply — заполнится на следующем)"
|
|
value = local.pg_password
|
|
sensitive = true
|
|
}
|
|
|
|
// Удобная строка подключения — для psql или приложений.
|
|
output "pg_dsn" {
|
|
description = "DSN для подключения: postgresql://user:pass@host:port/db"
|
|
value = "postgresql://${nubes_postgres_user.pg_test_user.username}:${local.pg_password}@${local.pg_host}:${local.pg_port}/${nubes_postgres_database.pg_test_db.db_name}"
|
|
sensitive = true
|
|
}
|