105 lines
4.0 KiB
Terraform
105 lines
4.0 KiB
Terraform
# RabbitMQ кластер для демо.
|
|
resource "nubes_rabbitmq" "rb1" {
|
|
resource_name = "rabbit_0"
|
|
resource_realm = "k8s-3.ext.nubes.ru"
|
|
resource_instances = 1
|
|
resource_memory = 512
|
|
resource_c_p_u = 500
|
|
resource_disk = 5
|
|
need_external_address_master = false
|
|
need_external_address_slave = false
|
|
}
|
|
|
|
# Lucee UI, который пишет в Rabbit и читает из Postgres.
|
|
resource "nubes_lucee" "rabbit_ui" {
|
|
resource_name = "rb-lucee-ui"
|
|
resource_realm = "k8s-3.ext.nubes.ru"
|
|
domain = "rb-ui"
|
|
app_version = "5.4"
|
|
git_path = "https://gitea-naeel.giteak8s.services.ngcloud.ru/naeel/rabbit-lsd.git"
|
|
resource_c_p_u = 300
|
|
resource_memory = 512
|
|
resource_instances = 1
|
|
|
|
# Переменные окружения для datasource, Rabbit и UI.
|
|
json_env = jsonencode({
|
|
testds_bundleName = "org.postgresql.jdbc"
|
|
testds_bundleVersion = "42.6.0"
|
|
testds_class = "org.postgresql.Driver"
|
|
testds_connectionLimit = "5"
|
|
testds_connectionString = "jdbc:postgresql://${var.PGHOST}:5432/postgres"
|
|
testds_liveTimeout = "15"
|
|
testds_username = var.PGUSER
|
|
testds_password = var.PGPASSWORD
|
|
testds_validate = "false"
|
|
PG_TABLE = "rabbit_messages"
|
|
UI_LOG_TABLE = "rabbit_ui_log"
|
|
RABBIT_HOST = try(nubes_rabbitmq.rb1.state_out_flat["internalConnect.master"], nubes_rabbitmq.rb1.state_out_flat["inernalConnect.master"])
|
|
RABBIT_PORT = "5672"
|
|
RABBIT_USER = nubes_rabbitmq.rb1.vault_secrets["adminUser"]
|
|
RABBIT_PASSWORD = nubes_rabbitmq.rb1.vault_secrets["adminPass"]
|
|
RABBIT_VHOST = "/"
|
|
RABBIT_QUEUES = "crud_queue"
|
|
RABBIT_DURABLE = "true"
|
|
RABBIT_ADMIN_URL = "https://${nubes_rabbitmq.rb1.state_out_flat["externalConnect.admin.fqdn"]}/#/"
|
|
NODEWORKER_URL = "https://nodeworker.nodejsk8s.services.ngcloud.ru/"
|
|
})
|
|
|
|
depends_on = [nubes_rabbitmq.rb1]
|
|
}
|
|
|
|
# NodeJS воркер, который переносит CRUD из очереди в Postgres.
|
|
resource "nubes_nodejs" "rabbit_nodeworker" {
|
|
resource_name = "nodeworker"
|
|
resource_realm = "k8s-3.ext.nubes.ru"
|
|
domain = "nodeworker"
|
|
app_version = "23"
|
|
git_path = "https://gitea-naeel.giteak8s.services.ngcloud.ru/naeel/rabbit-nodeworker.git"
|
|
health_path = "/healthz"
|
|
resource_c_p_u = 100
|
|
resource_memory = 256
|
|
resource_instances = 1
|
|
|
|
# Параметры подключения к Rabbit и Postgres.
|
|
json_env = jsonencode({
|
|
RABBIT_HOST = try(nubes_rabbitmq.rb1.state_out_flat["internalConnect.master"], nubes_rabbitmq.rb1.state_out_flat["inernalConnect.master"])
|
|
RABBIT_PORT = "5672"
|
|
RABBIT_USER = nubes_rabbitmq.rb1.vault_secrets["adminUser"]
|
|
RABBIT_PASSWORD = nubes_rabbitmq.rb1.vault_secrets["adminPass"]
|
|
RABBIT_VHOST = "/"
|
|
RABBIT_QUEUES = "crud_queue"
|
|
RABBIT_DURABLE = "true"
|
|
RABBIT_PREFETCH = "1"
|
|
REQUEUE_ON_ERROR = "true"
|
|
PGHOST = var.PGHOST
|
|
PGPORT = "5432"
|
|
PGUSER = var.PGUSER
|
|
PGPASSWORD = var.PGPASSWORD
|
|
PGDATABASE = "postgres"
|
|
PGSSLMODE = "require"
|
|
PG_TABLE = "rabbit_messages"
|
|
})
|
|
|
|
depends_on = [nubes_rabbitmq.rb1]
|
|
}
|
|
|
|
# # Ручной триггер redeploy для воркера.
|
|
# resource "nubes_nodejs_redeploy" "rabbit_nodeworker_redeploy" {
|
|
# nodejs_id = nubes_nodejs.rabbit_nodeworker.id
|
|
# resource_realm = "k8s-3.ext.nubes.ru"
|
|
# run_id = "redeploy-2026-02-2-01134"
|
|
# }
|
|
|
|
# # Ручной триггер restart для Lucee UI.
|
|
# resource "nubes_lucee_restart" "rabbit_ui_restart" {
|
|
# lucee_id = nubes_lucee.rabbit_ui.id
|
|
# run_id = "restart-2026-02-23-023"
|
|
# }
|
|
|
|
# S3 бакет baba.
|
|
resource "nubes_s3bucket" "baba_bucket" {
|
|
resource_name = "baba-buck"
|
|
s3_user_uid = "s3-111805"
|
|
bucket_name = "baba"
|
|
}
|