# ============================================================================= # Flask Producer — генерирует IoT-события, шлёт в Kafka # ============================================================================= locals { # vault_secrets для доступа к паролям (ключ зависит от сервиса: users/secrets) producer_kafka_secrets = try(jsondecode(nubes_kafka.main.vault_secrets["users"]), jsondecode(nubes_kafka.main.vault_secrets["secrets"]), tomap({})) producer_kafka_brokers = try(nubes_kafka.main.state_out_flat["bootstrapServers"], "") producer_kafka_password = try(nonsensitive(lookup(local.producer_kafka_secrets, "iot-app", tomap({})).password), "") } resource "nubes_flask" "producer" { resource_name = local.producer_resource_name startup_configuration = { resource_realm = var.realm } cluster_configuration = { cpu = local.producer_cpu memory = local.producer_memory replicas = local.producer_replicas } access_configuration = { domain = local.producer_domain } app_configuration = { version = "3.12" git_path = local.producer_git_path health_path = "/health" } git_revision = local.producer_git_revision operation_timeout = local.producer_timeout json_env = jsonencode({ KAFKA_BROKERS = local.producer_kafka_brokers KAFKA_TOPIC = local.kafka_topic_name KAFKA_USERNAME = local.kafka_username KAFKA_PASSWORD = local.producer_kafka_password PRODUCE_INTERVAL = "3" }) depends_on = [nubes_kafka.main] }