# ============================================================================= # PG — общая база данных для CRUD-приложений # ============================================================================= # # Эта папка управляет ТОЛЬКО базой данных: сам кластер PostgreSQL, пользователь и # база. Она НЕ знает про приложения (Lucee/Flask/Node.js) — приложения живут в # соседней папке apps/ и подключаются к этой БД через выгруженные креды. # # ЗАЧЕМ так разделено (папка pg/ отдельно от apps/): # - БД — общий ресурс: к одному кластеру может подключаться несколько наборов # приложений (сейчас apps/, потом любые другие папки). # - terraform destroy в apps/ должен убивать ТОЛЬКО приложения, а не БД с данными. # Если бы всё лежало в одном state, destroy снёс бы и кластер. # - Разные state ⇒ разные жизненные циклы: БД живёт дольше приложений. # # Порядок запуска — см. README.md в родительской папке CRUD/. # ============================================================================= resource "nubes_postgres" "main_pg" { resource_name = var.pg_resource_name startup_configuration = { resource_realm = var.realm } cluster_configuration = { cpu = var.pg_cpu memory = var.pg_memory replicas = var.pg_replicas disk = var.pg_disk } access_configuration = { master_ip_space = "no-needed" master_access_list = jsonencode(["10.0.0.0/8"]) slave_ip_space = "no-needed" slave_access_list = jsonencode([]) } postgres_configuration = { version = var.pg_version ssl_required = true pooler_master = false pooler_slave = false } postgres_conf = jsonencode([{ paramName = "log_connections" paramValue = "''" }]) backup_configuration = { s3_uid = var.s3_name retain = var.pg_retain schedule = var.pg_schedule } autoscale_configuration = { enabled = false schedule = 0 percent = 10 quota = 100 } operation_timeout = var.pg_timeout adopt_existing_on_create = true # ⚠️ destroy: кластер НЕ удалять, а переводить в Suspend. # Это поведение по умолчанию сервиса postgres (suspend_on_destroy_default: true # в generated/test/resources_yaml/90_postgres.yaml). Явно НЕ ставим отсюда, чтобы # destroy случайно не снёс БД с данными. }