Files
tf_provider/TEST_STAND/IOT_KAFKA_DEMO/infra.tf
T

82 lines
3.0 KiB
Terraform

# =============================================================================
# Инфраструктурные сервисы (создаются первым прогоном apply)
# RabbitMQ (очередь) + Redis (кэш) + MongoDB (архив)
# =============================================================================
# --- RabbitMQ: очередь сообщений (сервис 93) ---
# state_out_flat["internalConnect"] = K8s-хост (service.cluster.local)
# vault_secrets["adminUser"] / ["adminPass"] = логин/пароль (прямые строки, не JSON)
resource "nubes_rabbitmq" "main" {
resource_name = local.rmq_resource_name # имя в личном кабинете
startup_configuration = { # на каком K8s-кластере развернуть
resource_realm = var.realm
}
cluster_configuration = { # ресурсы пода
cpu = local.rmq_cpu # CPU millicores
memory = local.rmq_memory # память MB
disk = local.rmq_disk # диск GB
replicas = local.rmq_replicas # количество нод
}
access_configuration = { # сетевой доступ
master_ip_space = "no-needed" # не резервировать внешний IP
master_access_list = jsonencode(["10.0.0.0/8"]) # внутренняя сеть K8s
}
operation_timeout = local.rmq_timeout # макс. время ожидания
}
# --- Redis: кэш дашборда (сервис 91) ---
# state_out_flat["internalConnect.master"] = хост
# vault_secrets["adminPass"] = пароль (прямая строка)
resource "nubes_redis" "main" {
resource_name = local.rds_resource_name
startup_configuration = {
resource_realm = var.realm
}
cluster_configuration = {
cpu = local.rds_cpu
memory = local.rds_memory
disk = local.rds_disk
replicas = local.rds_replicas
}
access_configuration = {
master_ip_space = "no-needed" # не резервировать внешний IP
master_access_list = jsonencode(["10.0.0.0/8"]) # доступ изнутри кластера
slave_ip_space = "no-needed" # slave не нужен
slave_access_list = jsonencode([]) # slave не нужен
}
operation_timeout = local.rds_timeout
}
# --- MongoDB: архив событий (сервис 92) ---
# state_out_flat["internalConnect"] = хост
# vault_secrets — пустой (нет дефолтных пользователей), подключаемся без пароля
resource "nubes_mongodb" "main" {
resource_name = local.mgo_resource_name
startup_configuration = {
resource_realm = var.realm
}
cluster_configuration = {
cpu = local.mgo_cpu
memory = local.mgo_memory
disk = local.mgo_disk
replicas = local.mgo_replicas
}
access_configuration = {
master_ip_space = "no-needed"
master_access_list = jsonencode(["10.0.0.0/8"])
}
operation_timeout = local.mgo_timeout
}