# ============================================================================= # Dashboard (Node.js + Chart.js) — читает Redis, показывает графики # API: /api/latest, /api/counters, /api/recent # ============================================================================= locals { # Подключение к Redis (только чтение) dash_rds_host = nubes_redis.main.state_out_flat["internalConnect.master"] # K8s-хост Redis dash_rds_pass = nonsensitive(nubes_redis.main.vault_secrets["adminPass"]) # пароль Redis } resource "nubes_nodejs" "dashboard" { resource_name = local.dash_resource_name # имя в личном кабинете startup_configuration = { resource_realm = var.realm # K8s-кластер } cluster_configuration = { cpu = local.dash_cpu # CPU millicores memory = local.dash_memory # память MB replicas = local.dash_replicas # количество подов } access_configuration = { domain = local.dash_domain # поддомен -> iotdash22.nodejsk8s.dev.nubes.ru } app_configuration = { version = "22" # версия Node.js git_path = local.dash_git_path # Git-репо с кодом health_path = "/" # health-check } git_revision = local.dash_git_revision # коммит для деплоя operation_timeout = local.dash_timeout # таймаут adopt_existing_on_create = true # подхватить suspended инстанс при повторном apply # Переменные окружения json_env = jsonencode({ REDIS_HOST = local.dash_rds_host # хост Redis REDIS_PORT = "6379" # порт Redis REDIS_PASS = local.dash_rds_pass # пароль Redis }) depends_on = [nubes_redis.main] # ждать создания Redis }