docs: все TF файлы с детальными комментариями на каждую строку

This commit is contained in:
“Naeel”
2026-07-22 09:26:20 +04:00
parent 837a663367
commit 3dac50b78a
7 changed files with 238 additions and 176 deletions
+28 -24
View File
@@ -1,47 +1,51 @@
# =============================================================================
# Flask Producer — генерирует IoT-события, шлёт в RabbitMQ
# Producer (Node.js) — генерирует IoT-события и шлёт в RabbitMQ
# Каждые 3 сек создаёт случайное событие от одного из 8 датчиков
# Переменные окружения попадают в K8s под через json_env
# =============================================================================
locals {
producer_rabbit_host = try(nubes_rabbitmq.main.state_out_flat["internalConnect"], "")
producer_rabbit_user = try(nonsensitive(nubes_rabbitmq.main.vault_secrets["adminUser"]), "admin")
producer_rabbit_password = try(nonsensitive(nubes_rabbitmq.main.vault_secrets["adminPass"]), "")
# Достаём реальные значения из созданного RabbitMQ (state_out_flat + vault_secrets)
prod_rmq_host = nubes_rabbitmq.main.state_out_flat["internalConnect"] # K8s-хост RabbitMQ
prod_rmq_user = nonsensitive(nubes_rabbitmq.main.vault_secrets["adminUser"]) # логин RabbitMQ
prod_rmq_pass = nonsensitive(nubes_rabbitmq.main.vault_secrets["adminPass"]) # пароль RabbitMQ
}
resource "nubes_flask" "producer" {
resource_name = local.producer_resource_name
resource "nubes_nodejs" "producer" {
resource_name = local.prod_resource_name # имя в личном кабинете
startup_configuration = {
resource_realm = var.realm
resource_realm = var.realm # K8s-кластер
}
cluster_configuration = {
cpu = local.producer_cpu
memory = local.producer_memory
replicas = local.producer_replicas
cpu = local.prod_cpu # CPU millicores
memory = local.prod_memory # память MB
replicas = local.prod_replicas # количество подов
}
access_configuration = {
domain = local.producer_domain
domain = local.prod_domain # поддомен для HTTP-доступа
}
app_configuration = {
version = "3.12"
git_path = local.producer_git_path
health_path = "/health"
version = "22" # версия Node.js
git_path = local.prod_git_path # Git-репо с кодом
health_path = "/" # эндпоинт для health-check'а
}
git_revision = local.producer_git_revision
operation_timeout = local.producer_timeout
adopt_existing_on_create = true
git_revision = local.prod_git_revision # коммит для деплоя
operation_timeout = local.prod_timeout # таймаут
# Переменные окружения в K8s поде (доступны через process.env)
json_env = jsonencode({
RABBIT_HOST = local.producer_rabbit_host
RABBIT_PORT = "5672"
RABBIT_USER = local.producer_rabbit_user
RABBIT_PASSWORD = local.producer_rabbit_password
RABBIT_QUEUE = local.rabbit_queue
PRODUCE_INTERVAL = "3"
RABBIT_HOST = local.prod_rmq_host # хост RabbitMQ
RABBIT_PORT = "5672" # порт AMQP
RABBIT_USER = local.prod_rmq_user # логин
RABBIT_PASS = local.prod_rmq_pass # пароль
RABBIT_QUEUE = local.rmq_queue # имя очереди
PRODUCE_INTERVAL = "3" # интервал между событиями (сек)
})
depends_on = [nubes_rabbitmq.main]
depends_on = [nubes_rabbitmq.main] # ждать создания RabbitMQ
}