# ============================================================================= # PG — провайдер и переменные # ============================================================================= # # Здесь только БД: кластер + пользователь + база. Приложения — в ../apps/. # Почему так разделено — см. README.md в родительской папке CRUD/. # ============================================================================= terraform { required_providers { nubes = { source = "tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes" version = "3.0.0" } } } provider "nubes" { api_token = var.api_token api_endpoint = "https://lk-api-gateway-test.ngcloud.ru/api/v1/svc" # log_level = "debug" # none | info | debug, default = "none" } # ───────────────────────────────────────────────────────────────────────────── # Обязательные (заполняются в terraform.tfvars) # ───────────────────────────────────────────────────────────────────────────── variable "api_token" { type = string sensitive = true description = "Nubes API token (ЛК → Профиль → Токены → создать «Технический»)" } variable "realm" { type = string description = "resource_realm: ресурсная платформа (кластер Kubernetes), например k8s-4-sandbox-nubes-ru" } variable "s3_name" { type = string description = "Имя (или UUID) S3-экземпляра для бэкапов PostgreSQL: ЛК → S3" } # ───────────────────────────────────────────────────────────────────────────── # Кластер — значения по умолчанию можно не задавать # ───────────────────────────────────────────────────────────────────────────── variable "pg_resource_name" { type = string default = "pg4crud2" description = "Имя ресурса кластера в Nubes (по нему же ищется существующий — adopt)" } variable "pg_cpu" { type = number default = 500 } variable "pg_memory" { type = number default = 512 } variable "pg_replicas" { type = number default = 1 } variable "pg_disk" { type = number default = 10 } variable "pg_version" { type = string default = "17" } variable "pg_retain" { type = number default = 14 } variable "pg_schedule" { type = string default = "0 0 * * *" } variable "pg_timeout" { type = string default = "11m" description = "Таймаут операций кластера (create/modify/suspend)" } # ───────────────────────────────────────────────────────────────────────────── # Пользователь и база — имена константны: по ним приложения собирают подключение # ───────────────────────────────────────────────────────────────────────────── variable "pg_username" { type = string default = "user4crudpg" description = "Имя пользователя БД. Защищённые имена (admin/postgres/standby) платформа не примет" } variable "pg_role" { type = string default = "ddl_user" description = "app_user = только DML, ddl_user = плюс создание баз/ролей (нужно приложению для CREATE TABLE)" } variable "pg_db_name" { type = string default = "db4crudpg" }