52 lines
2.0 KiB
Terraform
52 lines
2.0 KiB
Terraform
# =============================================================================
|
|
# Flask Producer — генерирует IoT-события, шлёт в Kafka
|
|
# =============================================================================
|
|
locals {
|
|
producer_kafka_secrets = jsondecode(nubes_kafka.main.vault_secrets["users"])
|
|
producer_kafka_bootstrap = "${try(nubes_kafka.main.state_out_flat["internalConnect.bootstrap.fqdn"], "")}:${try(nubes_kafka.main.state_out_flat["internalConnect.bootstrap.port"], "9093")}"
|
|
producer_kafka_password = try(nonsensitive(local.producer_kafka_secrets["iot-app"]["user.password"]), "")
|
|
producer_kafka_ca_crt = try(nonsensitive(local.producer_kafka_secrets["ca"]["ca.crt"]), "")
|
|
producer_kafka_user_crt = try(nonsensitive(local.producer_kafka_secrets["iot-app"]["user.crt"]), "")
|
|
producer_kafka_user_key = try(nonsensitive(local.producer_kafka_secrets["iot-app"]["user.key"]), "")
|
|
}
|
|
|
|
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_bootstrap
|
|
KAFKA_TOPIC = local.kafka_topic_name
|
|
KAFKA_USERNAME = local.kafka_username
|
|
KAFKA_PASSWORD = local.producer_kafka_password
|
|
KAFKA_CA_CRT = local.producer_kafka_ca_crt
|
|
KAFKA_USER_CRT = local.producer_kafka_user_crt
|
|
KAFKA_USER_KEY = local.producer_kafka_user_key
|
|
PRODUCE_INTERVAL = "3"
|
|
})
|
|
|
|
depends_on = [nubes_kafka.main]
|
|
}
|