Облачная платформаEvolution

cloudru_evolution_postgresql_cluster (Resource)


Example Usage

resource "cloudru_evolution_postgresql_cluster" "resource_cluster" {
# Поле name является неизменяемым. При изменении значения ресурс будет пересоздан.
name = "awesome-postgres-cluster"
# Поле description является неизменяемым. При изменении значения ресурс будет пересоздан.
description = "Production PostgreSQL cluster"
# Поле project_id является неизменяемым. При изменении значения ресурс будет пересоздан.
project_id = "00000000-0000-0000-0000-000000000000"
# Поле version является неизменяемым. При изменении значения ресурс будет пересоздан.
version = 17
instances = 2
subnet_ids = ["00000000-0000-0000-0000-000000000000", "11111111-1111-1111-1111-111111111111"]
specification_id = "00000000-0000-0000-0000-000000000000"
storage = {
pg_data_gb = 100
pg_wal_gb = 40
}
pooler_config = {
enabled = true
pool_mode = "TRANSACTION"
parameters = {
"max_client_conn" = 100
}
}
backup = {
schedule = "0 3 * * 0"
retention_policy_days = 14
}
# Поле logging является неизменяемым. При изменении значения ресурс будет пересоздан.
logging = {
enabled = true
log_group_id = "00000000-0000-0000-0000-000000000000"
}
initial_database = "myapp_db"
initial_database_lc_collate = "C"
initial_database_lc_ctype = "C"
recovery_spec = {
cluster_id = "00000000-0000-0000-0000-000000000000"
pitr = "Thu, 01 Jan 2026 12:00:00 UTC"
backup_id = "00000000-0000-0000-0000-000000000000"
}
# Позволяет переопределить дефолтный таймаут провайдера для определенного метода. Если нужно указать бесконечный таймаут, то нужно указать например 0s, тогда таймаута не будет.
timeouts {
create = "60m"
update = "30m"
delete = "20m"
}
# Игнорировать изменения таймаутов: это предотвращает лишние обновления ресурса при смене значений таймаутов в конфигурации
# Но следует учитывать, что метод delete в ресурсе читает значение таймаута из стейта и, если его нужно изменить, то этот блок стоит закомментировать
lifecycle {
ignore_changes = [timeouts]
}
}

Schema

Required

  • initial_database (String) Название базы данных, которая будет создана в экземпляре сервиса по умолчанию.

  • name (String) Название кластера.

  • project_id (String) Идентификатор проекта.

  • specification_id (String) Идентификатор спецификации кластера. Ресурсы кластера типа standard нельзя изменить после создания.

  • storage (Attributes) Размеры дисков кластера. (see below for nested schema)

  • version (String) Версия продукта.

Optional

  • backup (Attributes) Параметры автоматического резервного копирования. (see below for nested schema)

  • description (String) Описание кластера.

  • initial_database_lc_collate (String) Локаль сортировки базы данных, созданной по умолчанию. Нельзя изменить после создания кластера. Значение по умолчанию — C.

  • initial_database_lc_ctype (String) Локаль набора символов базы данных, созданной по умолчанию. Нельзя изменить после создания кластера. Значение по умолчанию — C.

  • instances (Number) Количество узлов кластера. Допустимые значения зависят от режима развертывания кластера: 1-2 узла для standard, 1-3 узла для business. Если в subnet_ids указано несколько подсетей, кластер считается мультизональным, и количество узлов должно совпадать с количеством подсетей.

  • logging (Attributes) Параметры интеграции с сервисом Клиентского логирования. (see below for nested schema)

  • pooler_config (Attributes) Конфигурация пулера соединений PgBouncer. (see below for nested schema)

  • primary_standby_mode (Boolean, Deprecated) Устарело. Используйте поле instances.

  • recovery_spec (Attributes) Параметры восстановления кластера. (see below for nested schema)

  • subnet_id (String, Deprecated) Устарело. Используйте поле subnet_ids.

  • subnet_ids (List of String) Идентификаторы подсетей. Подсети определяют зоны доступности кластера. Если указано несколько подсетей, кластер считается мультизональным. Мультизональный режим доступен только для кластеров типа business. В этом случае количество подсетей должно совпадать с количеством узлов instances, а каждая подсеть должна находиться в отдельной зоне доступности. Список подсетей и их описание можно получить через API сервиса виртуальных машин в разделе Subnets.

  • sync_replication_enabled (Boolean, Deprecated) Не имеет эффекта.

  • timeouts (Block, Optional) (see below for nested schema)

Read-Only

  • connection_string (String) Строка подключения.

  • created_at (String) Время создания кластера.

  • created_by (String) Идентификатор пользователя, создавшего кластер.

  • health (String) Состояние кластера.

  • id (String) Идентификатор кластера.

  • status (String) Статус кластера.

Nested Schema for storage

Required:

  • pg_data_gb (Number) Размер основного диска с данными в гигабайтах.

Optional:

  • pg_wal_gb (Number) Размер диска с WAL-журналом предзаписи в гигабайтах. При указании WAL-журнал будет размещен на отдельном диске. Размер должен составлять не менее 20% от основного диска. Значение является опциональным. Кластер типа Standart не поддерживает этот параметр.

Nested Schema for backup

Optional:

  • retention_policy_days (Number) Срок хранения автоматически созданных резервных копий. Максимальное значение — 30 дней.

  • schedule (String) Расписание автоматического резервного копирования в формате CRON-выражения. Например, выражение „15 14 ? * *“ будет запускать задачу каждый день в 14:15. Краткий формат вида «@midnight» или «@every 1h30m» не поддерживается. Автоматическое резервное копирование может происходить не чаще, чем раз в 6 часов. По умолчанию запускается каждое воскресенье в 03:00, резервные копии хранятся в течение 14 дней.

Nested Schema for logging

Optional:

  • enabled (Boolean) Признак отправки логов кластера. По умолчанию false — логи не отправляются.

  • log_group_id (String) Идентификатор лог-группы, в которую отправляются логи. Если значение не задано, будет использоваться лог-группа проекта по умолчанию — default.

Nested Schema for pooler_config

Optional:

  • enabled (Boolean) Включить пулер соединений. По умолчанию false — пулер выключен. Нельзя изменить после создания кластера.

  • parameters (Map of String) Дополнительные параметры конфигурации PgBouncer. Список поддерживаемых параметров и их описание доступны в разделе документации Пулер соединений. Параметр pool_mode задается отдельно через поле pool_mode.

  • pool_mode (String) Режим работы пулера соединений. По умолчанию SESSION. Подробнее.

Nested Schema for recovery_spec

Required:

  • cluster_id (String) ClusterID - идентификатор кластера, которому требуется восстановление.

Optional:

  • backup_id (String) BackupID — идентификатор резервной копии, из которой необходимо восстановить кластер.

  • pitr (String) PITR — восстановление на момент времени (point-in-time-recovery). Введите время восстановления в формате временной метки.

Nested Schema for timeouts

Optional:

  • create (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours).

  • delete (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.

  • update (String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as «30s» or «2h45m». Valid time units are «s» (seconds), «m» (minutes), «h» (hours).