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
id(String) The ID of this resource.status(Attributes) (see below for nested schema)
Nested Schema for endpoints
Required:
name(String) Имя эндпойнта.network(String) Идентификатор пользовательской сети (VPC).primary_addresses(Attributes List) (see below for nested schema)
Optional:
read_only_addresses(Attributes List) (see below for nested schema)
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:
weekly(Attributes) (see below for nested schema)
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) IOPSsize(String) Размер диска.type(String) Тип диска.
Nested Schema for status.instances
Read-Only:
health(String) Исправность экземпляра postgresname(String) Имя экземпляра postgresrole(String) Роль экземпляра postgres
Nested Schema for status.maintenance_window
Required:
weekly(Attributes) (see below for nested schema)
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:
primary_addresses(Attributes List) (see below for nested schema)read_only_addresses(Attributes List) (see below for nested schema)
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) Состояние ресурса