docs: все TF файлы с детальными комментариями на каждую строку
This commit is contained in:
@@ -1,58 +1,64 @@
|
||||
# =============================================================================
|
||||
# Flask Consumer — читает RabbitMQ, пишет в Redis + MongoDB
|
||||
# Consumer (Node.js) — читает RabbitMQ, сохраняет в Redis + MongoDB
|
||||
# Использует amqplib для AMQP-подключения к RabbitMQ
|
||||
# =============================================================================
|
||||
|
||||
locals {
|
||||
consumer_rabbit_host = try(nubes_rabbitmq.main.state_out_flat["internalConnect"], "")
|
||||
consumer_rabbit_user = try(nonsensitive(nubes_rabbitmq.main.vault_secrets["adminUser"]), "admin")
|
||||
consumer_rabbit_password = try(nonsensitive(nubes_rabbitmq.main.vault_secrets["adminPass"]), "")
|
||||
# Подключение к RabbitMQ (AMQP, порт 5672)
|
||||
cons_rmq_host = nubes_rabbitmq.main.state_out_flat["internalConnect"] # K8s-хост
|
||||
cons_rmq_user = nonsensitive(nubes_rabbitmq.main.vault_secrets["adminUser"]) # логин
|
||||
cons_rmq_pass = nonsensitive(nubes_rabbitmq.main.vault_secrets["adminPass"]) # пароль
|
||||
|
||||
consumer_redis_host = try(nubes_redis.main.state_out_flat["internalConnect.master"], "")
|
||||
consumer_redis_password = try(nonsensitive(nubes_redis.main.vault_secrets["adminPass"]), "")
|
||||
# Подключение к Redis (порт 6379)
|
||||
cons_rds_host = nubes_redis.main.state_out_flat["internalConnect.master"] # K8s-хост
|
||||
cons_rds_pass = nonsensitive(nubes_redis.main.vault_secrets["adminPass"]) # пароль
|
||||
|
||||
consumer_mongo_host = try(nubes_mongodb.main.state_out_flat["internalConnect"], "")
|
||||
consumer_mongo_user = try(nonsensitive(nubes_mongodb.main.vault_secrets["adminUser"]), "admin")
|
||||
consumer_mongo_password = try(nonsensitive(nubes_mongodb.main.vault_secrets["adminPass"]), "")
|
||||
# Подключение к MongoDB (порт 27017) — без аутентификации (vault пустой)
|
||||
cons_mgo_host = nubes_mongodb.main.state_out_flat["internalConnect"] # K8s-хост
|
||||
cons_mgo_user = "admin" # дефолтный пользователь
|
||||
cons_mgo_pass = "" # без пароля
|
||||
}
|
||||
|
||||
resource "nubes_flask" "consumer" {
|
||||
resource_name = local.consumer_resource_name
|
||||
resource "nubes_nodejs" "consumer" {
|
||||
resource_name = local.cons_resource_name # имя в личном кабинете
|
||||
|
||||
startup_configuration = {
|
||||
resource_realm = var.realm
|
||||
resource_realm = var.realm # K8s-кластер
|
||||
}
|
||||
|
||||
cluster_configuration = {
|
||||
cpu = local.consumer_cpu
|
||||
memory = local.consumer_memory
|
||||
replicas = local.consumer_replicas
|
||||
cpu = local.cons_cpu # CPU millicores
|
||||
memory = local.cons_memory # память MB
|
||||
replicas = local.cons_replicas # количество подов
|
||||
}
|
||||
|
||||
access_configuration = {
|
||||
domain = local.consumer_domain
|
||||
domain = local.cons_domain # поддомен для HTTP
|
||||
}
|
||||
|
||||
app_configuration = {
|
||||
version = "3.12"
|
||||
git_path = local.consumer_git_path
|
||||
health_path = "/health"
|
||||
version = "22" # версия Node.js
|
||||
git_path = local.cons_git_path # Git-репо с кодом
|
||||
health_path = "/" # health-check эндпоинт
|
||||
}
|
||||
|
||||
git_revision = local.consumer_git_revision
|
||||
operation_timeout = local.consumer_timeout
|
||||
adopt_existing_on_create = true
|
||||
git_revision = local.cons_git_revision # коммит для деплоя
|
||||
operation_timeout = local.cons_timeout # таймаут
|
||||
|
||||
# Переменные окружения для K8s пода
|
||||
json_env = jsonencode({
|
||||
RABBIT_HOST = local.consumer_rabbit_host
|
||||
RABBIT_PORT = "5672"
|
||||
RABBIT_USER = local.consumer_rabbit_user
|
||||
RABBIT_PASSWORD = local.consumer_rabbit_password
|
||||
RABBIT_QUEUE = local.rabbit_queue
|
||||
REDIS_HOST = local.consumer_redis_host
|
||||
REDIS_PORT = "6379"
|
||||
REDIS_PASSWORD = local.consumer_redis_password
|
||||
MONGO_URI = "mongodb://${local.consumer_mongo_user}:${local.consumer_mongo_password}@${local.consumer_mongo_host}:27017/iot?authSource=admin"
|
||||
MONGO_DB = "iot"
|
||||
RMQ_HOST = local.cons_rmq_host # хост RabbitMQ
|
||||
RMQ_PORT = "5672" # порт AMQP
|
||||
RMQ_USER = local.cons_rmq_user # логин RabbitMQ
|
||||
RMQ_PASS = local.cons_rmq_pass # пароль RabbitMQ
|
||||
RMQ_QUEUE = local.rmq_queue # имя очереди
|
||||
REDIS_HOST = local.cons_rds_host # хост Redis
|
||||
REDIS_PORT = "6379" # порт Redis
|
||||
REDIS_PASS = local.cons_rds_pass # пароль Redis
|
||||
MONGO_URI = "${local.cons_mgo_user}:${local.cons_mgo_pass}@${local.cons_mgo_host}:27017/iot?authSource=admin"
|
||||
MONGO_DB = "iot" # имя базы MongoDB
|
||||
})
|
||||
|
||||
# Ждать создания всех трёх сервисов
|
||||
depends_on = [nubes_rabbitmq.main, nubes_redis.main, nubes_mongodb.main]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user