Skip to content

mws_mpostgres_cluster (Resource)

Кластер в Managed PostgreSQL — это группа узлов (виртуальных машин), объединенных для хранения и обработки данных с помощью СУБД PostgreSQL. В облачной инфраструктуре кластер — единый интерфейс для управления базами данных.

Пример использования

terraform
resource "mws_vpc_network" "network" {
  network = var.network_name
}

resource "mws_vpc_subnet" "subnet" {
  subnet  = var.subnet_name
  network = mws_vpc_network.network.network
  cidr    = var.subnet_cidr
}

resource "mws_vpc_address" "cluster_primary_address" {
  address = "${var.cluster_name}-primary-address"
  network = mws_vpc_network.network.network
  subnet  = mws_vpc_subnet.subnet.metadata.id
}

resource "mws_mpostgres_cluster" "cluster" {
  cluster = var.cluster_name
  version = "17"
  active  = true

  metadata = {
    display_name = "Standalone Postgres Cluster"
    description  = "A standalone PostgreSQL cluster"
  }

  endpoints = [
    {
      name    = "primary-endpoint"
      network = mws_vpc_network.network.metadata.id
      primary_addresses = [
        {
          ref = mws_vpc_address.cluster_primary_address.metadata.id
        }
      ]
    }
  ]

  instance_template = {
    vm_type = "vmTypes/gen-2-8"
    disk = {
      size = "20GB"
      type = "NETWORK_STANDARD_SSD"
    }
  }

  instances = [
    {
      count = 1
      zone  = "ru-central1-a"
    }
  ]

  backup = {
    retain_period_days = 7
    daily = {
      hour = 2
    }
  }

  maintenance_window = {
    weekly = {
      days = ["SUNDAY"]
      hour = 4
    }
  }
}

variable "cluster_name" {
  type        = string
  default     = "my-pg-cluster"
  description = "Postgres cluster name"
}

variable "network_name" {
  type        = string
  default     = "my-pg-cluster-network"
  description = "Network name"
}

variable "subnet_name" {
  type        = string
  default     = "my-pg-cluster-subnet"
  description = "Subnet name"
}

variable "subnet_cidr" {
  type        = string
  default     = "192.168.10.0/24"
  description = "Subnet CIDR"
}

Schema

Required

  • active (Boolean) Значение включен/выключен кластер.
  • cluster (String) Название или идентификатор кластера.
  • endpoints (Attributes List) Описание эндпойнтов в сетях пользователя (VPC) для подключения к инстансам кластера. (see below for nested schema)
  • instance_template (Attributes) (see below for nested schema)
  • instances (Attributes List) (see below for nested schema)
  • version (String) Версия продукта

Optional

  • backup (Attributes) Спецификация автоматического бэкапирования (see below for nested schema)
  • kind (String)
  • maintenance_window (Attributes) (see below for nested schema)
  • metadata (Attributes) (see below for nested schema)
  • postgres_parameters (Map of String) Параметры PostgreSQL. Если не указаны, будут использованы дефолтные параметры.
  • project (String) Путь к проекту
  • timeouts (Attributes) (see below for nested schema)

Read-Only

Nested Schema for endpoints

Required:

  • name (String) Имя эндпойнта.
  • network (String) Идентификатор пользовательской сети (VPC).
  • primary_addresses (Attributes List) (see below for nested schema)

Optional:

Nested Schema for endpoints.primary_addresses

Optional:

  • external_access (Attributes) Описание адреса для внешнего подключения к кластеру. (see below for nested schema)
  • ref (String) Идентификатор адресса, в которые будет трансляция из service-vpc.
  • spec (Attributes) Описание subnet пользователя, в который будет трансляция из service-vpc. (see below for nested schema)

Nested Schema for endpoints.primary_addresses.external_access

Required:

  • allowed (Boolean) Флаг, разрешающий внешнее подключение к кластеру.

Optional:

  • ref (String) Идентификатор внешнего адреса.

Nested Schema for endpoints.primary_addresses.spec

Required:

  • subnet (String)

Nested Schema for endpoints.read_only_addresses

Optional:

  • external_access (Attributes) Описание адреса для внешнего подключения к кластеру. (see below for nested schema)
  • ref (String) Идентификатор адресса, в которые будет трансляция из service-vpc.
  • spec (Attributes) Описание subnet пользователя, в который будет трансляция из service-vpc. (see below for nested schema)

Nested Schema for endpoints.read_only_addresses.external_access

Required:

  • allowed (Boolean) Флаг, разрешающий внешнее подключение к кластеру.

Optional:

  • ref (String) Идентификатор внешнего адреса.

Nested Schema for endpoints.read_only_addresses.spec

Required:

  • subnet (String)

Nested Schema for instance_template

Required:

  • disk (Attributes) Параметры диска с данными на узле кластера. (see below for nested schema)
  • vm_type (String) Тип виртуальной машины, описывающий ресурсы (vCPU, memory).

Nested Schema for instance_template.disk

Required:

  • size (String) Размер диска.
  • type (String) Тип используемого диска:
  • "NETWORK_STANDARD_SSD" — сетевой SSD
  • "LOCAL" — локальный диск

Optional:

  • iops (Number) IOPS

Nested Schema for instances

Required:

  • count (Number) Количество экземпляров в зоне доступности

Optional:

  • zone (String) Зона доступности

Nested Schema for backup

Optional:

  • daily (Attributes) Спецификация ежедневного автоматического бэкапирования (see below for nested schema)
  • retain_period_days (Number) Количество дней хранения бэкапа

Nested Schema for backup.daily

Optional:

  • hour (Number) Час начала автоматического бэкапирования

Nested Schema for maintenance_window

Required:

Nested Schema for maintenance_window.weekly

Required:

  • days (List of String) Дни недели, в который будет запущено задание на тех.обслуживание
  • hour (Number) Час, в который будет запущено задание на тех.обслуживание

Optional:

  • duration (String) Допустимая продолжительность процесса обновления. Если не указано, то не ограничено по времени. Принимается только формат в часах (h)

Nested Schema for metadata

Optional:

  • description (String) Описание ресурса.
  • display_name (String) Отображаемое имя. Необязательное поле, можно свободно задавать и изменять для удобства организации ресурсов.

Read-Only:

  • create_time (String) Дата создания объекта.
  • delete_time (String) Время запроса на удаление ресурса (не фактическое время удаления).
  • id (String) ссылка на типизированный референс
  • purge_time (String)
  • usages (Attributes List) Связи с другими ресурсами. В зависимости от типа связи, операции над ресурсом могут быть ограничены. (see below for nested schema)

Nested Schema for metadata.usages

Read-Only:

  • name (String) Имя связи, требуется для модификации коллекции
  • resource (String) ссылка на ресурс
  • usage_type (String) Тип связи. Помимо стандартных own и use могут быть добавлены специализированные типы для конкретных сервисов

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).

Nested Schema for status

Read-Only:

  • backup (Attributes) Фактические параметры для автоматического бэкапирования (see below for nested schema)
  • health (String) Работоспособность кластера
    • "ALIVE" - Полностью работоспособен
    • "DEGRADED" - Деградирует (некоторые, но не все, экземпляры неработоспособны)
    • "FAILED" - Неработоспособен
    • "UNKNOWN" - Не удаётся определить состояние (на этапе создания)
  • instance_template (Attributes) (see below for nested schema)
  • instances (Attributes List) (see below for nested schema)
  • maintenance_window (Attributes) (see below for nested schema)
  • message (String)
  • network (Attributes) Описание ip адресов для доступа к кластеру (see below for nested schema)
  • ready (Attributes) Информация о статусе реконсиляции (see below for nested schema)
  • state (String) Состояние кластера
    • "CREATING" - Создаётся
    • "RUNNING" - Работает в штатном режиме
    • "STOPPING" - Останавливается
    • "STOPPED" - Остановлен
    • "STARTING" - Запуск ранее остановленного
    • "UPDATING" - Выполняется обновление
    • "ERROR" - Произошла ошибка, требуется участие команды поддержки
    • "DELETING" - Удаляется
    • "DELETED" - Удалён
    • "UNIDENTIFIED" - Не удаётся определить статус
    • "RESTORING" - Восстанавливается
    • "MAINTENANCE" - Ведутся работы по тех.обслуживанию

Nested Schema for status.backup

Read-Only:

  • daily (Attributes) Фактические параметры ежедневного автоматического бэкапирования (see below for nested schema)
  • retain_period_days (Number) Количество дней хранения бэкапа

Nested Schema for status.backup.daily

Read-Only:

  • hour (Number) Час начала автоматического бэкапирования

Nested Schema for status.instance_template

Read-Only:

  • disk (Attributes) Параметры диска с данными на узле кластера. (see below for nested schema)
  • vm_type (String) Тип виртуальной машины, описывающий ресурсы (vCPU, memory).

Nested Schema for status.instance_template.disk

Read-Only:

  • iops (Number) IOPS
  • size (String) Размер диска.
  • type (String) Тип диска.

Nested Schema for status.instances

Read-Only:

  • health (String) Исправность экземпляра postgres
  • name (String) Имя экземпляра postgres
  • role (String) Роль экземпляра postgres

Nested Schema for status.maintenance_window

Required:

Nested Schema for status.maintenance_window.weekly

Required:

  • days (List of String) Дни недели, в который будет запущено задание на тех.обслуживание
  • hour (Number) Час, в который будет запущено задание на тех.обслуживание

Optional:

  • duration (String) Допустимая продолжительность процесса обновления. Если не указано, то не ограничено по времени. Принимается только формат в часах (h)

Nested Schema for status.network

Read-Only:

Nested Schema for status.network.primary_addresses

Read-Only:

  • address (String)
  • external (Attributes) Описание внешнего ip адреса для доступа к кластеру (see below for nested schema)
  • ip (String)
  • subnet (String)

Nested Schema for status.network.primary_addresses.external

Read-Only:

  • address (String)
  • ip (String)

Nested Schema for status.network.read_only_addresses

Read-Only:

  • address (String)
  • external (Attributes) Описание внешнего ip адреса для доступа к кластеру (see below for nested schema)
  • ip (String)
  • subnet (String)

Nested Schema for status.network.read_only_addresses.external

Read-Only:

  • address (String)
  • ip (String)

Nested Schema for status.ready

Read-Only:

  • message (String) Описание статуса
  • state (String) Состояние ресурса